登入成功在response.header中返回set-cookie,前端如何获取这个cookie值
发布于 12 天前 作者 qqxwbtt 341 次浏览 来自 问答

登入成功在response.header中返回set-cookie,前端如何获取这个cookie值 前端的同学说获取不到请求头里的值

9 回复

如果是ajax我记得set-cookie是无效的,无法获得的

响应头里的 set-cookie 拿不到, 从 document.cookie 取, 但是有两个条件:

  1. 接口必须和前端在同域
  2. cookie不能是http only

@yinxin630 额 我看express-session里面生成的cookie都是放在响应头里的诶 拿不到放在那里有什么用额

@qqxwbtt 浏览器接收到该响应头后, 会将要设置的cookie值存储到浏览器cookie中, 前端只能通过浏览器API获取浏览器cookie内容.

@yinxin630 这个过程是浏览器自动保存cookie的吗。。我这边没有看到浏览器有存储cookie诶, 还是不能跨域?cookie不能是http only

@qqxwbtt 自动的, 去 chrome devtool => Application => Cookies 查看

@waitingsong node-fetch是node环境吧, 浏览器环境中如果是跨域Ajax请求, 浏览器限制只允许拿到部分header, 这部分header不包括 set-cookie 如果想暴露更多header可以参考: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Expose-Headers 我没尝试过能不能暴露 set-cookie

@yinxin630 浏览器里拿cookie受限比较多。很可能拿不到(http only)。

回到顶部