是否可以为当前域包含子域存储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的域部分留空,并将其设置为当前域(也与子域匹配)
答案 0 :(得分:0)
可能的解决方案:
var domainName = window.location.hostname;
document.cookie = "key=value; expires=Tue, 16 Apr 2019 11:31:56 GMT; path=/; secure; domain=." + domainName;