Javascript为当前域设置了cookie,包括子域

时间:2018-04-20 06:26:37

标签: javascript http cookies

是否可以为当前包含子域存储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的域部分留空,并将其设置为当前域(也与子域匹配)

1 个答案:

答案 0 :(得分:0)

可能的解决方案:

var domainName = window.location.hostname;
document.cookie = "key=value; expires=Tue, 16 Apr 2019 11:31:56 GMT; path=/; secure; domain=." + domainName;