Cookie 的问题

发布于 2022-09-11 21:48:53 字数 1101 浏览 20 评论 0

描述:
前端项目部署在http://localhost:8000,
后端项目部署在http://localhost:8888,
前端进入首页请求了一次后端,被后端拦截器拦截器返回需要登录的提示,前端解析后,跳转到登录界面。 登录后,set-cookie成功,以后的所有的localhost:8000/xxx请求都会携带cookie,现在重新回到首页,前端请求参数增加withCredentials=true,会重新请求一次后端。这时候发现浏览器直接报错了。发现是Access-Control-Allow-Origin不能指定为*,必须要明确主机来源。改为localhost:8000后重试,还是报错,说是必须有Access-Control-Allow-Credentials=true.搞定

问题:
1.第一次登陆的时候,调用http://localhost:8888/api/account/login
服务器端没有设置相应的domain,并addCookie。为什么cookie是种在了前端的8000上,而不是8888的?
2.登陆成功跳转到首页第二次请求服务器接口时,因为前端请求指定了withCredentials=true。后续再请求后端接口时为什么chrome看不到 request头部有cookie呢?实际上是能接收到的,浏览器为什么要隐藏呢
3.前端请求指定了withCredentials=true,难道请求首部没有任何的新增吗?

请大佬指教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

另类 2022-09-18 21:48:53
  • 1、Cookie 还是在 8888 下的,只不过你 xhr 请求的一直也是 8888 ,只是你自己没有感觉到,只是你觉得在 8000 下,实际上在浏览器处理请求时还是归属于 8888 ,具体可以查看浏览器存储的信息。
  • 2、浏览器不一定会显示所有的头部信息,可以用其他的抓包工具进行查看。
  • 3、在服务端允许跨域后 ,关于背后的一切都是 xhr2 完成的,关于更多跨域信息,可以查阅 CSOR 相关。
  • 补充:部分浏览器在服务端 Access-Control-Allow-Origin 返回为 * 时,将不被允许传递 Cookie。
眉黛浅 2022-09-18 21:48:53

clipboard.png
@唯一丶
上面这个是一个普通的请求,请求前端的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文