Chrome为什么会忽略本地jQuery Cookie?


83

我正在使用jQuery Cookie插件(下载演示以及带注释的源代码)来设置和读取Cookie。我正在本地计算机上开发页面。

以下代码将在FireFox 3,IE 7和Safari(PC)中成功设置cookie。但是,如果浏览器是Google Chrome浏览器,并且页面是本地文件,则无法使用。

$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});

我所知道的

  • 该插件的演示适用于Chrome。
  • 如果我将代码放在网络服务器(地址以http://开头)上,则可以在Chrome浏览器上使用。

因此,该cookie仅对本地文件上的Google Chrome失败。

可能的原因

  • Google Chrome浏览器不接受硬盘驱动器上的网页中的cookie(诸如file:/// C:/websites/foo.html之类的路径)
  • 插件中的某些设置导致Chrome拒绝此类Cookie

谁能确认这一点并找出根本原因?


当您说演示有效时,是否意味着要将其保存到硬盘并像file://一样访问?
格雷格,

否-只需使用Chrome访问上面的链接。
内森·朗

Answers:


94

除非您使用--enable-file-cookies标志将其启动,否则Chrome不支持本地文件的cookie(或者像彼得·里昂斯所说的localhost *)。您可以在http://code.google.com/p/chromium/issues/detail?id=535上阅读有关它的讨论。

*浏览器的确,如果你直接使用本地IP地址(127.0.0.1)支持Cookie。因此在localhost的情况下,这可能是更容易的解决方法。


将域设置为IP不适用于我,但是如果我删除了该域(本地,我们需要该域用于生产)就可以了
Kyeotic 2012年

在Mac OSX上,以带有--enable-file-cookies标志启动Chrome,使用终端命令:“ open / Applications / Google \ Chrome.app/Contents/MacOS/Google \ Chrome --args --enable-file-cookies” -(或根据您的Chrome.app位置对其进行调整)
Peeech '18


5

我遇到了一些问题,并解决了这个可怕的解决方案。一起使用商店和Cookie插件。

<script src="js/jquery.cookies.2.2.0.js" type="text/javascript"></script>
<script src="js/jquery.Storage.js" type="text/javascript"></script>

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

//get cookies
var helpFlag=(is_chrome)?$.Storage.get("helpFlag"):$.cookies.get("helpFlag");

//set cookies
if(is_chrome)$.Storage.set("helpFlag", "1");else $.cookies.set("helpFlag", "1");

我知道这不是完美的解决方案,但对我有用


4

这为我做了工作:

在此处输入图片说明

右键单击您的Chrome图标,然后依次选择属性,快捷方式标签,然后在目标路径的最后添加--enable-file-cookies。


3

我遇到了同样的问题,请尝试改用localhost的IP地址。例如“ http://127.0.0.1/您的网站/”


3

请查看Cookie和Google Analytics(分析)

$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});

将此行更改为

$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});

这个项目工作正常。


1
谢谢,更改大小写为“路径”
可解决

2

另一个可能的原因是path: "/",因为您使用的不是正常的网址,/可能意义不大-尝试完全不设置路径。


好主意,但是'/'仍然是默认值。我试过'file:/// C:/',但我认为在这种情况下这是胡说八道。
内森·朗


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.