【问题标题】:Javascript cookie removal not working on ChromeJavascript cookie 删除在 Chrome 上不起作用
【发布时间】:2011-05-08 10:28:01
【问题描述】:

我正在使用 javascript 来删除一个 cookie,但由于某种原因它不适用于 Chrome。我正在使用的脚本是;

function clearCookie()
{
   document.cookie = 'myCookie=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/myPath/';
}

这适用于;

  • IE 8.0.6
  • 火狐3.6.12

..但在 Chrome 7.0.517.44 上不起作用,应该清除 cookie 后我仍然可以看到它并且值没有改变。

有什么想法吗? Chrome 中是否有任何用户设置可能会阻止我的 cookie 被删除?

【问题讨论】:

  • 我不知道 chrome,所以这只是一个猜测。也许 chrome 缓存了 cookie 的视图?或者:退出 chrome 并重新打开它后会发生什么?饼干还在吗?
  • 会话结束时cookie过期,所以是的,关闭浏览器并重新打开会清除它。
  • 清除 cookie 后,还要尝试导航到同一域上的不同页面 - cookie 是否仍然存在?
  • 是的,确实如此,这就是问题所在:(

标签: javascript cookies google-chrome


【解决方案1】:

您可以在 chrome 中清除 cookie,但在创建空白 cookie 以替换当前的时,您还需要设置域。

【讨论】:

    【解决方案2】:

    Chrome 和 FF 在这方面存在严重问题。在这里你可以看到两个浏览器的错误,它们的状态是 WONTFIX...

    铬:https://code.google.com/p/chromium/issues/detail?id=128513

    FF:https://bugzilla.mozilla.org/show_bug.cgi?id=443354

    【讨论】:

      【解决方案3】:

      Chrome 不支持 file:// 和 localhost uris 上的 cookie。看到这个问题 - Why does Chrome ignore local jQuery cookies?

      【讨论】:

        【解决方案4】:

        您需要使用正确的日期时间格式才能使其正常工作。 以下应该可以解决问题

        function clearCookie()
        {
          document.cookie = 'myCookie=; expires='+new Date(0).toUTCString() +'; path=/myPath/';
        }
        

        当然,您需要指定与创建 cookie 时指定的完全相同的路径和&或域。

        【讨论】:

        • 它的工作方式与你在这个小提琴中看到的完全一样:jsfiddle.net/cWshc/2 - 如果你不能让它工作,你可能没有设置正确的路径或域或类似的。
        • 对我来说同样的问题。当我运行提供的 clearCookie 功能时,Chrome 不会删除 cookie。
        • 对我来说,如果我使用 .toGMTString()(我没有尝试过 toUTCString())
        • 引用 MDN:toGMTString 已被弃用,不应再使用,它​​只是为了向后兼容,请改用 toUTCString。 (他们会给你相同的输出)
        猜你喜欢
        • 2017-07-19
        • 2014-12-02
        • 2020-08-20
        • 2015-12-21
        • 1970-01-01
        • 2011-12-17
        • 2013-02-19
        • 2021-01-09
        • 1970-01-01
        相关资源
        最近更新 更多