2011-12-17 134 views
6

我使用下面的代碼設置在JavaScript中的cookie:Chrome中無法設置Cookie路徑根

setCookie('cart_items','product_name'); 


function setCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

但Cookie路徑未設置爲在Chrome根(/)。相反,它會被設置爲網頁執行的路徑!

我用IE和FF測試過。它適用於這兩種瀏覽器....

什麼可能是錯誤的Chrome或者它是與我使用的Cookie創建代碼的問題??

在瀏覽器(16.0.912.63)

路徑:/ XXXXXXXX/XXXXXXX

在FF (6.0)

路徑:/

IE(9)中的

路徑:/

+0

爲什麼不自己設置路徑? – 2011-12-17 04:54:09

+0

路徑已經明確設置(document.cookie = name +「=」+ value + expires +「; path = /」;) – Sandy505 2011-12-17 04:57:28

回答

9

之所以出現這種情況是因爲鉻不允許通過默認設置對本地文件的Cookie。看到這個答案的詳細資料:https://stackoverflow.com/a/347997/1324019(從答覆文件)

Chrome不支持本地文件的Cookie(或者像彼得·萊昂斯提到,本地主機*),除非你使用--enable-文件啓動 - 旗幟。你可以在http://code.google.com/p/chromium/issues/detail?id=535上閱讀關於它的討論。

* Chrome 確實如果直接使用本地IP地址(127.0.0.1),則支持cookie。所以在localhost的情況下,這可能是一個更簡單的解決方法。