为什么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(路径如file:/// C:/websites/foo.html)
  • 插件实施中的某些内容会导致Chrome拒绝这些Cookie
  • 任何人都可以证实这一点,并确定根本原因?


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

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


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


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

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

    链接地址: http://www.djcxy.com/p/44885.html

    上一篇: Why does Chrome ignore local jQuery cookies?

    下一篇: prepared statement and SQL injection