Chrome不会删除会话Cookie

时间:2012-05-16 11:54:14

标签: javascript session google-chrome cookies

我正在尝试在javascript中设置会话cookie,如下所示:

document.cookie = 'name=alex; path=/'

但即使我退出浏览器并再次启动浏览器,Chrome也不会将其删除。

我检查了Firefox和Opera,两者都按预期工作 - 他们在浏览器退出时删除了会话cookie。

Chrome是否只是忽略过期规则?

我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu中的Chrome上被删除,但在Mac OSX Lion中没有。

13 个答案:

答案 0 :(得分:199)

答案 1 :(得分:25)

我刚刚遇到了与在#34;浏览会话结束时过期的Cookie相同的问题"。

不幸的是,事实并非如此,我对浏览器的设置进行了一些调整。

原来,在浏览器关闭时记住打开的标签的功能是问题的根源。 (该功能名为"在启动时#34; - "继续我离开的位置"。至少在当前版本的Chrome上。)

Opera和Firefox也会出现这种情况。

答案 2 :(得分:20)

我刚遇到这个问题。 我注意到即使在我关闭浏览器后,我也运行了许多chrome进程。原来这些论文都来自我的chrome扩展。

在高级设置下,我取消选中'Continue running background apps when Google Chrome is closed',我的会话Cookie开始正常工作。

对于我们所有开发人员而言,编码期待会话cookie在用户完成浏览时会被清除的后方仍然是一个痛苦

答案 3 :(得分:9)

这可能是因为关闭浏览器后Chrome仍在后台运行。尝试通过执行以下操作禁用此功能:

  1. 打开chrome:// settings /
  2. 点击“显示高级设置...”
  3. 向下导航到“系统”部分,然后停用“Google Chrome关闭时继续运行后台应用”。 这会强制Chrome完全关闭,然后会删除会话Cookie。
  4. 但是,我认为Chrome应该检查并删除之前的会话cookie,而不是关闭。

答案 4 :(得分:5)

我必须在Chrome的高级设置下取消选中,

  • '在Google Chrome关闭后继续运行后台应用
  • "继续我离开的地方","在启动时"

答案 5 :(得分:3)

一个简单的替代方法是使用新的sessionStorage对象。根据评论,如果你选中“继续我离开的地方”,sessionStorage将在重新启动之间保持不变。

答案 6 :(得分:2)

我在Windows 8.1中遇到了与“document.cookie”相同的问题,Chrome删除Cookie的唯一方法就是将其从任务管理器中关闭(不是一种非常奇特的方式),所以我决定从后端管理cookie或使用“js-cookie”之类的东西。

答案 7 :(得分:1)

您是否尝试在Google Chrome中移除环聊扩展程序?因为即使关闭所有窗户,它也会强制铬继续运行。

我也遇到了这个问题但现在已经解决了。

答案 8 :(得分:0)

解决方案是使用sessionStorage,仅供参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

答案 9 :(得分:0)

如果您为php会话cookie设置域名,浏览器似乎会持续30秒左右。如果您关闭标签页或浏览器窗口似乎并不重要。

因此,如果您使用以下内容管理会话,则可能导致cookie在浏览器中挂起的时间超过预期。

ini_set("session.cookie_domain", 'www.domain.com');

我发现摆脱挂cookie的唯一方法是删除设置会话cookie域的代码行。还要注意session_set_cookie_params()函数。域名前缀似乎与此问题无关。

这可能是一个php错误,因为php在会话被销毁后在标题中发送会话cookie(即PHPSESSID=b855ed53d007a42a1d0d798d958e42c9)。或者它可能是服务器传播问题,但我不这么认为,因为我的测试是在私人服务器上。

答案 10 :(得分:0)

我刚刚遇到了Chrome存储会话ID的问题,但是我不喜欢禁用从我上次中断的位置继续执行的想法。我查看了网站的Cookie,并找到了登录页面的会话ID Cookie。删除那并不能解决我的问题。我搜索域,发现域上还有另一个会话ID cookie。手动删除两个会话ID cookie都可以解决此问题,而我没有关闭并重新打开可能已恢复cookie的浏览器。

答案 11 :(得分:0)

转到chrome://settings/content/cookies?search=cookies

启用Clear cookies and site data when you quit Chrome

为我工作

答案 12 :(得分:-8)

如果您设置和取消设置Cookie不正确的方式,Google Chrome会出现问题。这是PHP代码。认为这会给你一个想法。

设置Cookie

setcookie('userLoggedIn', 1, 0, PATH);

错误的方式,不起作用(注意PATH缺失)

setcookie('userLoggedIn', 0, time()-3600);

正确修复Google Chrome上的问题

setcookie('userLoggedIn', 0, time()-3600, PATH);