如何解决前端 axios get 跨域获取后端时无法保存 cookie

2019-07-26 21:31:28 +08:00
 minskiter
后端 repsonse headers 里在 chrome 开发者 network 可以看到有 set-cookie 字段;
后端已经配置好跨域,允许携带凭据
前端已经设置 withCre******=ture

但是 chrome console 输出 document.cookie 为空,chrome 设置里可以看见前端域名的 cookie 但是也是空的
4079 次点击
所在节点    程序员
12 条回复
Trim21
2019-07-26 21:33:43 +08:00
跨域的 cookies 是存在那个域名下的,不是当前这个域名下的
arrow8899
2019-07-26 21:43:29 +08:00
域名一样吗
arrow8899
2019-07-26 21:46:31 +08:00
抱歉,没看清,跨域的话肯定是在 XHR 的域名下面的。
ineed
2019-07-26 22:41:33 +08:00
检查下 cookie 的 httponly 属性
deepdark
2019-07-26 22:50:35 +08:00
不同域设不了,你可以让后端把 cookie 放在返回值里然后前端设置
IsaacYoung
2019-07-26 23:03:21 +08:00
Access-control-allow-credentials
sunjourney
2019-07-26 23:27:41 +08:00
httponly 设置的 cookie 不允许 js 访问,防 xss
minskiter
2019-07-26 23:29:35 +08:00
问题解决了,后端 dotnet 再加设置 cookiepolicy.none 就成功在前端设置了 cookie
minskiter
2019-07-26 23:31:24 +08:00
@sunjourney 恩,是的,后端已经把 httponly 设置为 false 了,但是还是不行的
minskiter
2019-07-26 23:34:10 +08:00
@IsaacYoung 嗯,后端跨域已经配置,凭据已经允许了
minskiter
2019-07-26 23:35:02 +08:00
@deepdark 噢噢
ted94
2019-07-27 13:44:14 +08:00
可以跨域设置 cookie 么= =!貌似根据同源策略是不允许的哦。除非是子域设置父域的 cookie ( a.a.com 设置 a.com 的 cookie,但 a.com 不能设置 b.com 的 cookie )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586577

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX