【发布时间】:2018-09-30 19:09:20
【问题描述】:
是否可以为当前域包括子域存储一个JS cookie。
例如:
document.cookie = "key=value; expires=Tue, 16 Apr 2019 11:31:56 GMT; path=/;secure" 为当前域设置 cookie,但不为域名添加点。
我知道可以通过domain=.example.com 指定域,但我不想硬编码域名。
我尝试了类似的方法,但没有成功:
document.cookie = "key=value; expires=Tue, 16 Apr 2019 11:31:56 GMT; path=/;secure;domain=."
更新:
我知道您可以使用 window.location.hostname 获取当前域,但有没有一种解决方案,我不需要以编程方式获取域名
更新 2:
就像这里描述的:What does the dot prefix in the cookie domain mean?
前面的点表示 cookie 对子域也有效;然而最近的 HTTP 规范 (RFC 6265) 改变了这个规则,所以现代浏览器不应该关心前导点。实现已弃用的 RFC 2109 的旧浏览器可能需要该点。
这意味着如果您在现代浏览器中的域名前使用一个点,它不会产生影响。也就是说,您可以将 JS cookie 的域部分留空,并将其设置为当前域(也匹配子域)
【问题讨论】:
标签: javascript http cookies