Javascript使用路径设置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=/;";

我正在创建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=/;";
    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。谢谢你的洞察力。很高兴你把它解决了。我已经写了一个合适的答案来帮助别人。