无法为Express.js应用程序设置标头(CORS)

时间:2018-03-27 18:48:48

标签: node.js express cors

无论我尝试使用什么来设置标题,它都无法正常工作。

服务器端需要在接受来自前端的POST请求后发送这样的响应头。

server.js

app.post('/register', (req, res) => {
   res.set({
       'Content-Type': 'application/json',
       'Access-Control-Allow-Origin': '*'
   });
   res.send('string');
   res.end();
}

res.set()函数不是我尝试使用的唯一函数。

我尝试过:

res.writeHead(201, {'Access-Control-Allow-Origin': '*'}) - 无效

res.setHeader('Access-Control-Allow-Origin', '*') - 不是

res.headers() - 也不起作用

它在这里说它是这样的:How can I set response header on express.js assets但答案对我不起作用。

无论我尝试什么,服务器都不会响应启用CORS的头,我需要头属性。我做错了什么?

2 个答案:

答案 0 :(得分:3)

尝试使用cors模块:https://www.npmjs.com/package/cors

var cors = require('cors')

...

app.use(cors())

答案 1 :(得分:0)

  

Access-Control-Expose-Headers 响应标头通过列出其名称来指示哪些标头可以作为响应的一部分公开。

您可以在此处详细了解:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers

res.set('Access-Control-Expose-Headers', 'Access-Control-Allow-Origin, <any-other-custom-header>, ...');