2016-09-27 110 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