我需要将CORS设置为在由express提供的脚本上启用。我如何设置这些公共/资产返回的响应头?


当前回答

@klode的答案是正确的。

但是,您应该设置另一个响应标头以使其他人可以访问您的标头。


例子:

首先,在响应头中添加“page-size”

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

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

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

其他回答

npm中至少有一个中间件可以在Express中处理CORS: CORS。[见@mscdex answer]

这是如何设置自定义响应头,从ExpressJS DOC

res.set(field, [value])

将报头字段设置为value

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

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

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

混叠

res.header(field, [value])

npm中至少有一个中间件可以在Express中处理CORS: CORS。

服务。使用(函数(req, res, next) { res.header(“Access-Control-Allow-Origin”、“*”); res.header(“Access-Control-Allow-Methods”、“获取、头选择、POST、PUT "); res.header("Access-Control-Allow-Headers", "Origin, x - request - with, Content-Type, Accept, Authorization"); next (); });

使用express.js 4.18.2的最新版本:

如果你正在使用静态中间件,并且想要改变响应头,你应该:

app.use(express.static('./', {
  setHeaders: function(res) {
    res.set("Content-Security-Policy", "default-src 'self'");
  }
}));

首先在响应头中添加“field”

response.set('field', 'value');

然后你要做的就是暴露你的头文件

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