如果在 set-cookie 的时候不设置 path 属性,那么 path 默认值是什么?
背景:
- 前端已经在请求头中设置withCredentials: true
- 前端是单页应用,使用 hash 路由
- 服务端的响应头已经配置了
Access-Control-Allow-Credentials:true
和Access-Control-Allow-Origin:前端域名
如果在 set-cookie 的时候不设置 path 属性,那么是不是默认 path=/ ?我以前一直觉得是这样的,但是昨天和后端联调的时候发现,如果 set-cookie 不设置 path 属性,那前端在根页面也无法取到这个cookie,浏览器在下一次请求时不会自动带上 cookie。
所以从现象来看,似乎一定要加上 path=/ 才能保证前端在该域名下能取到这个cookie,有谁知道这是为什么吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 HTTP 标准 RFC6265,没有指定 set-cookie 的 path 属性时,默认为请求 uri 的路径。
例如:请求 http://example.com/api?id=1 ,那么 path 默认是 "/api"。
参考
https://tools.ietf.org/html/r...
5.2.4. The Path Attribute
If the attribute-name case-insensitively matches the string "Path",
the user agent MUST process the cookie-av as follows.
If the attribute-value is empty or if the first character of the
attribute-value is not %x2F ("/"):
Otherwise:
Append an attribute to the cookie-attribute-list with an attribute-
name of Path and an attribute-value of cookie-path.