我正在尝试在javascript中设置会话cookie,如下所示:
document.cookie = 'name=alex; path=/'
但即使我退出浏览器并再次启动浏览器,Chrome也不会将其删除。
我检查了Firefox和Opera,两者都按预期工作 - 他们在浏览器退出时删除了会话cookie。
Chrome是否只是忽略过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu中的Chrome上被删除,但在Mac OSX Lion中没有。
答案 0 :(得分:199)
这可能是因为Chrome设置为从上次停止的地方继续。
答案 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仍在后台运行。尝试通过执行以下操作禁用此功能:
但是,我认为Chrome应该检查并删除之前的会话cookie,而不是关闭。
答案 4 :(得分:5)
我必须在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);