【发布时间】:2018-08-10 10:26:35
【问题描述】:
Chrome 长期以来一直忽略 Set-Cookie 标头。其中一些原因被称为错误并已修复,其他原因是持久的。它们都不容易在文档中找到。
- 302 重定向中不允许设置 Cookie
- 如果主机是 localhost,则不允许设置 Cookie
- 如果 Expires 超出可接受范围,则不允许设置 Cookie
我目前正在努力让 chrome 接受一个简单的会话 cookie。 Firefox 和 Safari 似乎接受大多数符合 RFC 的 Set-Cookie 字符串。 Chrome 顽固地拒绝承认甚至在请求中发送了 Set-Cookie 指令(未显示在开发人员工具(网络)中)。卷曲看起来不错。
那么有没有人知道 1) 跨浏览器 Set-Cookie 格式的现代最佳实践,或者 2) 关于什么可能导致 Chrome 在此处出现故障的更多信息?
谢谢。
【问题讨论】:
-
通常 Set-Cookie 适用于 Chrome 中的常规情况。如果不是大多数,则网络中断。因此,这意味着您要么 1)以不寻常的方式使用它,要么 2)您的代码中存在错误。在每种情况下,您都必须实际分享您的代码,以便其他人找出可能有什么问题。
-
我遇到了同样的问题。 Chrome 版本 71 接受 cookie,Firefox 和 Edge 接受 cookie,Postman 和 curl 接受 cookie。但我无法让 Chrome 72 版接受 cookie。
-
在 chrome 72 中也遇到了这个问题。结果是,由于某种原因,我们的服务器发送回了一个小时后的 Date 标头,并且 cookie 到期标头是准确的。似乎 chrome 关闭了不正确的日期标题,并解释为 cookie 已设置为过去过期,因此没有设置它。
-
哇...我花了几个小时处理一个无关的错误,cookie 没有更新。事实证明,Chrome 忽略了 localhost 的 set-cookie 标头。感谢这篇文章!
-
@AgustinGarzon 谢谢你。看到 chrome 会覆盖不存在的 cookie 的奇怪错误,一旦我从 localhost 作为域名切换,一切正常。
标签: google-chrome http cookies setcookie