如何在express.js资产上设置响应标题

我需要将CORS设置为在express服务的脚本上启用。 我怎样才能在公共/资产的这些返回的响应中设置标题?

在npm上至less有一个中间件用于处理Express中的CORS: cors 。 [看@mscdex答案]

这是如何从ExpressJS DOC设置自定义响应标题

res.set(field, [value]) 

将标题字段设置为值

 res.set('Content-Type', 'text/plain'); 

或传递一个对象来一次设置多个字段。

 res.set({ 'Content-Type': 'text/plain', 'Content-Length': '123', 'ETag': '12345' }) 

别名为

 res.header(field, [value]) 

在npm上至less有一个中间件用于处理Express中的CORS: cors 。

你可以使用cors来做到这一点。 Cors将处理您的CORS响应

 var cors = require('cors') app.use(cors()); 

这太讨厌了

好的,如果有人仍然有问题,或者只是不想添加另一个库。 所有你需要做的就是在你的路线之前放置这个中间的代码行代码。

Cors示例

 app.use((req, res, next) => { res.append('Access-Control-Allow-Origin', ['*']); next(); }); // Express routes app.get('/api/examples', (req, res)=> {...}); 

@ klode的答案是正确的。

但是,你应该设置另一个响应头,让你的头可以被别人访问。


例:

首先,在响应头中添加“页面大小”

 response.set('page-size', 20); 

然后,你需要做的就是暴露你的头

 response.set('Access-Control-Expose-Headers', 'page-size')