Node JS CORS 模块未设置 Access-Control-Allow-Credentials header
Node JS CORS module not setting Access-Control-Allow-Credentials header
我正在尝试使用这样的 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 却设置了其他的?
我知道这是因为我在控制台中收到以下错误
XMLHttpRequest cannot load http://www.localhost:1550/api/v1/auth/login. Response to preflight request doesn't pass access control check: Credentials flag is 'true', but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials. Origin 'http://127.0.0.1:1550' is therefore not allowed access.
您遗漏了有关正在使用的库的详细信息。是快递吗? Post 完整代码。
由于您只是明确指定 headers 无论如何您都可以删除 cors 模块。
你可以调整这个答案
In Node.js/Express, how do I automatically add this header to every "render" response?
我认为您没有正确设置配置。如文档中所述
https://www.npmjs.com/package/cors#configuration-options
var corsOptions = {
origin: 'localhost:1550',
credentials : true
}
这将设置凭据 header。作为 Origin 设置 Access-Control-Allow-Origin 和 credentials 设置 Access-Control-Allow-Credentials。
我正在尝试使用这样的 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 却设置了其他的?
我知道这是因为我在控制台中收到以下错误
XMLHttpRequest cannot load http://www.localhost:1550/api/v1/auth/login. Response to preflight request doesn't pass access control check: Credentials flag is 'true', but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials. Origin 'http://127.0.0.1:1550' is therefore not allowed access.
您遗漏了有关正在使用的库的详细信息。是快递吗? Post 完整代码。
由于您只是明确指定 headers 无论如何您都可以删除 cors 模块。 你可以调整这个答案 In Node.js/Express, how do I automatically add this header to every "render" response?
我认为您没有正确设置配置。如文档中所述
https://www.npmjs.com/package/cors#configuration-options
var corsOptions = {
origin: 'localhost:1550',
credentials : true
}
这将设置凭据 header。作为 Origin 设置 Access-Control-Allow-Origin 和 credentials 设置 Access-Control-Allow-Credentials。