【发布时间】:2020-03-24 03:44:04
【问题描述】:
我是 Node 和 Angular 的新手。发送请求 withCredentials: true 选项时,我遇到了 Cors 的问题。当我发送这样的请求时,我得到了:
响应中“Access-Control-Allow-Origin”标头的值 当请求的凭证模式为 '包括'。`。
在没有此选项的情况下发送请求时,我没有收到任何错误。 Angular 正在开发 http://localhost:4200,而 Nodejs 正在开发 http://localhost:1234。 cors 模块似乎无法正常工作。
在 NodeJs 服务器中我使用cors 模块:
const cors = require('cors');
const corsOptions = {
origin: 'http://localhost:4200',
optionsSuccessStatus: 200,
credentials: true
};
app.use(cors(corsOptions));
服务器上的req.headers:
{ host: 'localhost:1234',
connection: 'keep-alive',
'content-length': '44',
accept: 'application/json, text/plain, */*',
origin: 'http://localhost:4200',
'user-agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
'content-type': 'application/json',
'sec-fetch-site': 'same-site',
'sec-fetch-mode': 'cors',
referer: 'http://localhost:4200/login',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7' }
编辑 :似乎在私人模式下运行浏览器这样简单的事情解决了这个问题......
【问题讨论】:
-
您可以尝试将您的来源 (
localhost) 添加到Access-Control-Allow-Origin。 -
您可以在短时间内禁用 CORS 并尝试此命令 "chrome --disable-web-security --disable-site-isolation-trials --user-data-dir=c:\chromeSession " 使用 cmd 或 Cntr+R 运行,这只是为了交叉检查
-
我会改用代理。