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

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

以下代码将在FireFox 3,IE 7和Safari(PC)中成功设置cookie。 但是, 如果浏览器是谷歌浏览器,并且该页面是本地文件 ,则不起作用。

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

我所知道的

  • 该插件的演示与Chrome一起使用。
  • 如果我把我的代码放在一个web服务器上(地址以http://开头),它可以与Chrome一起使用。

所以这个cookie只能在本地文件上使用谷歌浏览器

可能的原因

  • 谷歌浏览器不接受来自硬盘驱动器网页的cookies(path如file:/// C:/websites/foo.html)
  • 插件实现中的某些内容会导致Chrome拒绝这些Cookie

任何人都可以证实这一点,并确定根本原因?

Chrome不支持本地文件的cookies(或者像Peter Lyons提到的localhost *),除非你用–enable-file-cookies标志启动它。 您可以在http://code.google.com/p/chromium/issues/detail?id=535上阅读关于它的讨论。;

*如果您直接使用本地IP地址(127.0.0.1),则Chrome支持cookies。 所以在localhost的情况下,这可能是一个更简单的解决方法。

对于本地应用程序,请使用Chrome中的localStorage来代替: http : //people.w3.org/mike/localstorage.html

我有一些问题,解决了这个可怕的解决scheme。 一起使用商店和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"); 

我知道这不是完美的解决scheme,但为我工作

我有同样的问题,请尝试使用localhost的IP地址。 例如,“http://127.0.0.1/yoursite/”;

请查看Cookies和Google Analytics(分析) 。

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

改变这一行

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

这个项目工作很好。

这为我做了这份工作:

在这里输入图像描述

右键单击您的Chrome图标,然后select“属性”,“快捷方式”选项卡,并在目标path的最后添加–enable-file-cookies。

另一个可能的原因是path: "/" ,因为你没有使用正常的url, /可能没有多大意义 – 尝试不设置path。

如果你使用chrominum这是启用本地cookie的命令

铬浏览器 – 启用文件Cookie

对于Chrome来说也是一样的

希望这对你有所帮助!