Set-Cookie 不适用于 Opera/Firefox 但它适用于 Postman。 (表示)
Set-Cookie not working on Opera/Firefox but it does on Postman. (express)
我一整天都在阅读有关遇到同样问题的人的信息,我已经尽我所能,但似乎无法解决问题。
我认为这与浏览器安全策略有关,我的 服务器和客户端 运行 都在不同的本地主机端口 并且浏览器将它们作为不同的域进行威胁。
但是,正如我所说,如果我从 Postman 发出 post 请求,cookie 就会被设置。
Cookieparser 和 cors 已启用并为它们尝试了多种配置,none 有效。
还尝试了域和路径的不同设置,结果相同。
我也认为它可能与我的浏览器插件或类似的东西有关,但我尝试使用隐身模式,其他浏览器并得到相同的结果...
客户端应用程序在 Angular 上,但我怀疑这与我读到的问题有任何关系。
res.cookie("SESSIONID", jwtBearerToken, { domain: 'localhost', secure: false, httpOnly: false, path: '/', maxAge: 9000000 }).send();
我在浏览器上得到的:
REQUEST AND RESPONSE
谢谢
自己解决了。
必须指定来源,通配符“*”对凭据无效
app.use(cors({
origin: 'http://localhost:4200',
credentials: true
}));
然后在我的 angular http 请求中我必须添加 withCredentials: true
(我已经尝试过,但在原点上使用了通配符)。
希望这对大家有用!
我一整天都在阅读有关遇到同样问题的人的信息,我已经尽我所能,但似乎无法解决问题。
我认为这与浏览器安全策略有关,我的 服务器和客户端 运行 都在不同的本地主机端口 并且浏览器将它们作为不同的域进行威胁。
但是,正如我所说,如果我从 Postman 发出 post 请求,cookie 就会被设置。
Cookieparser 和 cors 已启用并为它们尝试了多种配置,none 有效。
还尝试了域和路径的不同设置,结果相同。
我也认为它可能与我的浏览器插件或类似的东西有关,但我尝试使用隐身模式,其他浏览器并得到相同的结果...
客户端应用程序在 Angular 上,但我怀疑这与我读到的问题有任何关系。
res.cookie("SESSIONID", jwtBearerToken, { domain: 'localhost', secure: false, httpOnly: false, path: '/', maxAge: 9000000 }).send();
我在浏览器上得到的:
REQUEST AND RESPONSE
谢谢
自己解决了。
必须指定来源,通配符“*”对凭据无效
app.use(cors({
origin: 'http://localhost:4200',
credentials: true
}));
然后在我的 angular http 请求中我必须添加 withCredentials: true
(我已经尝试过,但在原点上使用了通配符)。
希望这对大家有用!