war*_*rch 4 javascript cookies http
是否可以为当前域(包括子域)存储 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:
就像这里描述的:Cookie 域中的点前缀是什么意思?
前导点表示 cookie 对子域也有效;然而最近的 HTTP 规范 (RFC 6265) 改变了这个规则,所以现代浏览器不应该关心前导点。实现已弃用的 RFC 2109 的旧浏览器可能需要该点。
这意味着,如果您在现代浏览器中在域名前使用点,则不会产生任何影响。也就是说,您可以将 JS cookie 的域部分留空,并将其设置为当前域(也匹配子域)
可能的解决方案:
var domainName = window.location.hostname;
document.cookie = "key=value; expires=Tue, 16 Apr 2019 11:31:56 GMT; path=/; secure; domain=." + domainName;
Run Code Online (Sandbox Code Playgroud)