Chrome不会删除会话Cookie
我试图在JavaScript中设置会话cookie,如下所示:
document.cookie = 'name=alex; path=/'
但即使我退出浏览器并重新启动,Chrome也不会删除它。
我检查了Firefox和Opera,并且都按预期工作 – 它们在浏览器退出时删除会话cookie。
Chrome是否忽略了过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu的Chrome上被删除,但不在Mac OSX Lion中删除。
这可能是由于将Chrome设置为“ 继续”而导致的 。
进一步阅读
- 错误报告:Chrome并没有删除临时的cookies – 即当我关闭所有浏览器的Windows时,不会自动注销
- Chromium中的问题128513:当Chrome进程关闭时,会话Cookie不会被清除
我刚刚遇到与“浏览会话结束”时设置为过期的cookie相同的问题。
不幸的是,它并没有让我对浏览器的设置起了一点作用。
原来,关闭浏览器时记住打开的标签的功能是问题的根源。 (该功能被命名为“启动时” – “继续我离开的地方”,至少在当前版本的Chrome中)。
Opera和Firefox也会发生这种情况。
我刚刚有这个问题。 我注意到,即使我关闭浏览器,我有很多铬进程运行。 原来,这些论文都来自我的Chrome扩展。
在高级设置下,我取消选中'Continue running background apps when Google Chrome is closed'
,我的会话Cookie开始工作。
对于我们所有开发人员来说,编码期望会话cookie在用户完成浏览时将被清除,这对我们来说仍然是一种痛苦
这可能是因为Chrome在关闭浏览器后仍然在后台运行。 尝试通过执行以下操作来禁用此功能:
- 打开chrome://设置/
- 点击“显示高级设置…”
- 导航到“系统”部分,并停用“关闭Google Chrome后继续运行后台应用程序”。 这将迫使Chrome完全关闭,然后删除会话Cookie。
不过,我认为Chrome应该在开始时检查并删除之前的会话Cookie,而不是关闭。
在Chrome的高级设置下,我不得不同时使用这两个选项:
- Google Chrome关闭后继续运行后台应用
- “继续我离开的地方”,“启动时”
我在Windows 8.1中遇到了与“document.cookie”相同的问题,Chrome删除cookie的唯一方法是将其从任务管理器中关闭(不是一个真正奇特的方式),所以我决定从后端管理cookie或使用像“js-cookie”。
一个简单的选择是使用新的sessionStorage对象。 根据评论,如果你有'继续我离开'检查,sessionStorage将坚持在重新启动之间。
您是否尝试在Google Chrome浏览器中删除环聊扩展程序? 因为即使你关闭了所有的窗户,它仍然强迫铬继续运行。
我也面临这个问题,但现在解决了。
其实我尝试了所有上述解决方案,不幸的是,他们没有解决我的问题。
解决方案是:
您应该关闭整个浏览器窗口,而不是当前的选项卡,
谷歌浏览器有一个问题,如果你设置和取消cookie不正确的方式。 这是php代码。 以为这会给你的想法。
设置cookie
setcookie('userLoggedIn', 1, 0, PATH);
错误的方式,将无法正常工作(通知PATH丢失)
setcookie('userLoggedIn', 0, time()-3600);
正确的方式解决了谷歌浏览器的问题
setcookie('userLoggedIn', 0, time()-3600, PATH);