Eva*_*van 96 javascript cookies
下面是一个JavaScript cookie,写在用户的计算机上12个月.
在我们在主域上设置cookie之后example.com,如果用户访问子域test.example.com,我们需要继续在"test"子域中识别用户的活动.
但是使用当前的代码,一旦他们离开www.example.com并访问test.example.com,他们就不再被标记为"HelloWorld".
是否有人能够帮助我的代码允许跨子域读取cookie?
<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate;
</script>
Run Code Online (Sandbox Code Playgroud)
aro*_*oth 197
只需在Cookie上设置domain和path属性,例如:
<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate
+ ";domain=.example.com;path=/";
</script>
Run Code Online (Sandbox Code Playgroud)
Mik*_*wis 27
你要:
document.cookie = cookieName +"=" + cookieValue + ";domain=.example.com;path=/;expires=" + myDate;
Run Code Online (Sandbox Code Playgroud)
根据RFC 2109,要让所有子域都可以使用cookie,您必须.在域前放置一个cookie .
设置path = /将使cookie在整个指定域(aka .example.com)中可用.
小智 7
这是一个工作示例:
document.cookie = "testCookie=cookieval; domain=." +
location.hostname.split('.').reverse()[1] + "." +
location.hostname.split('.').reverse()[0] + "; path=/"
Run Code Online (Sandbox Code Playgroud)
这是一个通用的解决方案,它从位置对象中获取根域并设置 cookie。反过来是因为您不知道您有多少个子域(如果有)。