2016-09-27 151 views
1

我正在创建旨在被mysite共享的cookie。Javascript设置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 

,因为这是被访问的变量不是唯一,这是造成我许多错误,但许多独立的。

任何想法,为什么我得到这种行为?

+1

只是为了确保它们不是早期测试中的残留物,是否可以将它们全部删除并重试? –

+0

你说得对。我没有正确删除所有的cookies。感谢您的洞察力。 – Xar

+0

很高兴你把它整理出来。我已经编写了一个适当的答案,以帮助未来的其他人。 –

回答

1

您的代码应该按预期工作,至少对于路径属性。这些其他cookie可能是早期测试中的残留(遗憾的是,由于浏览器通常不保存这些信息,通常无法跟踪给定cookie的创建日期)。

我建议你从浏览器中删除所有当前的cookies,然后重试。

1

该功能对我来说工作正常。冉以下几点:

setCookie('myCookieKey', 'myCookieValue', 10); 

而且我得到了以下内容:

enter image description here