gpt4 book ai didi

angularjs - Node JS CORS 模块未设置 Access-Control-Allow-Credentials header

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:11 26 4
gpt4 key购买 nike

我尝试使用像这样的 CORS 模块配置在 Node Js 中全局设置 Access-Control-Allow-Credentials header

`var cors = require('cors');
var corsOptions = {
origin: true,
'Access-Control-Allow-Origin': 'localhost:1550'
'Access-Control-Allow-Credentials': 'true'
};

app.use(cors(corsOptions));`

这似乎不起作用,所以我也为我尝试设置飞行前响应的路线设置了它。我是这样设置的

`router.options('/login', cors(corsOptions));`

我检查 Chrome 开发者工具,发现已设置 Access-Control-Allow-Origin header ,但未设置 Access-Control-Allow-Credentials。我需要这个 header ,因为我在 Angular 中设置了 withCredentials = true

为什么 Node JS 没有设置 Access-Control-Allow-Credentials header ,但却设置了其他 header ?

我知道这一点是因为在控制台中收到以下错误

XMLHttpRequest 无法加载 http://www.localhost:1550/api/v1/auth/login。对预检请求的响应未通过访问控制检查:凭据标志为“true”,但“Access-Control-Allow-Credentials” header 为“”。它必须是“真实的”才能允许凭证。因此,不允许访问源“http://127.0.0.1:1550”。

最佳答案

我认为您没有正确设置配置。如文档中所示

https://www.npmjs.com/package/cors#configuration-options

 var corsOptions = {
origin: 'localhost:1550',
credentials : true
}

这将设置凭据 header 。由于 Origin 设置 Access-Control-Allow-Origin 且凭据设置 Access-Control-Allow-Credentials。

关于angularjs - Node JS CORS 模块未设置 Access-Control-Allow-Credentials header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40468738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com