2011-12-17 137 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的情况下,这可能是一个更简单的解决方法。