我试图在javascript中设置会话cookie,就像这样:

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

但是Chrome不会删除它,即使我退出浏览器,重新启动它。

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

Chrome是否忽略了过期规则?

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


这可能是由于Chrome浏览器设置为继续你离开的地方。

进一步的阅读

Bug报告:Chrome不会删除临时cookie——也就是说,当我关闭所有浏览器Windows时,不会自动注销 问题128513铬:会话Cookies未清除时,Chrome进程关闭 问题128567:仅会话cookie无法删除


我只是遇到了这个问题。 我注意到,即使在我关闭浏览器后,仍有许多Chrome进程在运行。原来这些都是从我的Chrome扩展。

在高级设置下,我不勾选“当谷歌Chrome浏览器关闭时继续运行后台应用程序”,我的会话cookie开始正常工作。

对于我们所有开发人员来说,这仍然是一个令人头疼的问题,我们一直在编码,期望会话cookie在用户完成浏览时被清除。


我刚刚遇到了同样的问题,cookie被设置为在“浏览会话结束”时过期。

不幸的是,它没有,所以我玩了一点浏览器的设置。

事实证明,当浏览器关闭时还记得打开的标签页是问题的根源。(该功能被命名为“启动”-“继续我离开的地方”。至少在当前版本的Chrome上是这样)。

Opera和Firefox也是如此。


你有没有试着在谷歌Chrome浏览器中删除hangouts扩展?因为即使你关闭所有的窗口,它也会迫使chrome继续运行。

我也面临着这个问题,但现在问题解决了。


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

开放chrome: / / /设置 点击“显示高级设置…” 向下导航到系统部分,禁用“当谷歌Chrome浏览器关闭时继续运行后台应用程序”。 这将迫使Chrome完全关闭,然后它将删除会话cookie。

然而,我认为Chrome应该检查和删除以前的会话cookie在它开始而不是关闭。


一个简单的替代方法是使用新的sessionStorage对象。根据注释,如果你选择了“continue where I left off”,sessionStorage将在两次重启之间持续存在。


谷歌chrome浏览器有一个问题,如果你设置和取消设置cookie不当的方式。这是php代码。我想这会给你一些启发。

集饼干

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

错误的方式,将无法工作(注意PATH缺失)

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

正确的方法修复了谷歌chrome浏览器的问题

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

我不得不在Chrome的高级设置下,不加勾选地这样做:

当谷歌浏览器关闭时继续运行后台应用程序 "继续刚才的地方" "启动时"


我对“文件”也有同样的问题。在Windows 8.1中,Chrome删除cookie的唯一方法是从任务管理器中关闭它(不是一个真正花哨的方式),所以我决定从后端管理cookie或使用“js-cookie”之类的东西。


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


如果您为php会话cookie设置了域,浏览器似乎会保留它30秒左右。关闭选项卡或浏览器窗口似乎并不重要。

因此,如果您使用以下方式管理会话,可能会导致cookie在浏览器中挂起的时间比预期的要长。

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

我发现摆脱挂起cookie的唯一方法是删除设置会话cookie域的代码行。还要注意session_set_cookie_params()函数。在域名前面加上点似乎也与这个问题无关。

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


我刚刚有这个Chrome存储会话ID的问题,但我不喜欢禁用选项继续我离开的想法。我查看了网站的cookie,发现了一个用于登录页面的Session ID cookie。删除它并没有解决我的问题。我搜索该域,发现该域上还有另一个会话ID cookie。手动删除两个会话ID cookie解决了这个问题,我没有关闭并重新打开浏览器,这可能会恢复cookie。


转到chrome://settings/content/cookies?搜索=饼干

启用“退出Chrome时清除cookie和站点数据”。

为我工作


这个问题是因为你正在使用继续我离开的地方,并在谷歌Chrome浏览器关闭时继续运行后台应用程序(目前我的版本是96)。

请考虑关闭这些功能(以测试功能)。