以下是在用户计算机上写入12个月的JavaScript Cookie。在域上创建JavaScript Cookie并通过子域读取它
当我们在我们的主域如example.com
上设置了cookie后,如果用户访问像test.example.com
这样的子域,我们需要继续在我们的“测试”子域中标识用户的活动。
但是对于当前的代码,只要他们离开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>
我试图在localhost中执行此操作,但我无法更改路径 – Enve 2013-01-15 10:01:57
@Enve - 浏览器将localhost cookie与其他cookie有所不同。或者说,他们以一种使_localhost_工作变得困难的方式来对待所有的cookie。例如,请参阅http://stackoverflow.com/questions/1134290/cookies-on-localhost-with-explicit-domain。我建议编辑你的'hosts'文件并将别名'myserver.local'别名到'127.0.0.1'。然后你可以使用它来访问你的本地服务器(以及设置cookie的时候),并且希望所有的东西都能正常工作。 – aroth 2013-01-16 00:32:09
您创建和检索的所有Cookie值都必须是字符串值。字符串可能包含字符,当试图检索它们时可能会扰乱本地存储。我建议的一件事情是使用全局的'encodeURI()'&'decodeURI()'方法来处理任何需要进行的转换。即'document.cookie = encodeURI(cookieName)+“=”+ encodeURI(cookieValue)'。 – 2013-09-24 19:34:45