Javascript使用路径设置cookie=/
我正在创建cookies,这些cookies将在mysite上共享 这是创建此类cookie的代码:Javascript使用路径设置cookie=/,javascript,cookies,Javascript,Cookies,我正在创建cookies,这些cookies将在mysite上共享 这是创建此类cookie的代码: var setCookie = function(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toUTCString(); var path ="path=/;";
var setCookie = function(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
var path ="path=/;";
document.cookie = cname + "=" + cvalue + ";" + expires + ";" + path;
};
它看起来很简单,我使用path=/
表示我希望在我的站点上创建或修改始终相同的cookie
问题是它为每个URL创建了一个cookie。使用Mozilla插件,我可以看到以下内容:
Cookie Name Value Path
timer_is_enabled true /
timer_is_enabled false /foo
timer_is_enabled true /foo/bar
setCookie('myCookieKey', 'myCookieValue', 10);
这导致了我的许多错误,因为被访问的变量不是唯一的,而是许多独立的变量
知道我为什么会有这种行为吗?这个函数对我来说没问题。运行以下命令:
Cookie Name Value Path
timer_is_enabled true /
timer_is_enabled false /foo
timer_is_enabled true /foo/bar
setCookie('myCookieKey', 'myCookieValue', 10);
我得到了以下信息:
Cookie Name Value Path
timer_is_enabled true /
timer_is_enabled false /foo
timer_is_enabled true /foo/bar
setCookie('myCookieKey', 'myCookieValue', 10);
您的代码应该按预期工作,至少在路径属性方面是这样。这些其他cookie可能是早期测试的遗留信息(遗憾的是,通常无法跟踪给定cookie的创建日期,因为浏览器通常不保存此类信息)
我建议您从浏览器中删除所有当前cookie,然后重试。为了确保它们不是早期测试的残余,您可以将它们全部删除,然后重试吗?您是对的。我没有正确删除所有的cookies。谢谢你的洞察力。很高兴你把它解决了。我已经写了一个合适的答案来帮助别人。