我需要将 CORS 设置为在 express 提供的脚本上启用。如何在这些返回的公共/资产响应中设置标头?
如何在 express.js 资产上设置响应标头
IT技术
javascript
node.js
express
2021-02-06 22:05:14
6个回答
npm 上至少有一个中间件用于处理 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])
这太烦人了。
好的,如果有人仍然有问题或者只是不想添加另一个库。您所要做的就是将这个中间件代码行放在您的路由之前。
Cors 示例
app.use((req, res, next) => {
res.append('Access-Control-Allow-Origin', ['*']);
res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.append('Access-Control-Allow-Headers', 'Content-Type');
next();
});
// Express routes
app.get('/api/examples', (req, res)=> {...});
您可以通过使用 cors 来做到这一点。cors 将处理您的 CORS 响应
var cors = require('cors')
app.use(cors());
简答:
res.setHeaders
- 调用原生 Node.js 方法res.set
- 设置标题res.headers
- res.set 的别名
@klode 的回答是对的。
但是,您应该设置另一个响应标头,以使其他人可以访问您的标头。
例子:
首先,您在响应标头中添加“页面大小”
response.set('page-size', 20);
然后,您需要做的就是公开您的标头
response.set('Access-Control-Expose-Headers', 'page-size')
其它你可能感兴趣的问题