我试图在javascript中设置会话cookie,就像这样:
document.cookie = 'name=alex; path=/'
但是Chrome不会删除它,即使我退出浏览器,重新启动它。
我检查了Firefox和Opera,两者都按预期工作-它们在浏览器退出时删除会话cookie。
Chrome是否忽略了过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu的Chrome上被删除,但在Mac OSX Lion上没有。
我试图在javascript中设置会话cookie,就像这样:
document.cookie = 'name=alex; path=/'
但是Chrome不会删除它,即使我退出浏览器,重新启动它。
我检查了Firefox和Opera,两者都按预期工作-它们在浏览器退出时删除会话cookie。
Chrome是否忽略了过期规则?
我检查了多个操作系统,发现会话cookie在Windows XP和Ubuntu的Chrome上被删除,但在Mac OSX Lion上没有。
当前回答
我刚刚遇到了同样的问题,cookie被设置为在“浏览会话结束”时过期。
不幸的是,它没有,所以我玩了一点浏览器的设置。
事实证明,当浏览器关闭时还记得打开的标签页是问题的根源。(该功能被命名为“启动”-“继续我离开的地方”。至少在当前版本的Chrome上是这样)。
Opera和Firefox也是如此。
其他回答
这个问题是因为你正在使用继续我离开的地方,并在谷歌Chrome浏览器关闭时继续运行后台应用程序(目前我的版本是96)。
请考虑关闭这些功能(以测试功能)。
你有没有试着在谷歌Chrome浏览器中删除hangouts扩展?因为即使你关闭所有的窗口,它也会迫使chrome继续运行。
我也面临着这个问题,但现在问题解决了。
谷歌chrome浏览器有一个问题,如果你设置和取消设置cookie不当的方式。这是php代码。我想这会给你一些启发。
集饼干
setcookie('userLoggedIn', 1, 0, PATH);
错误的方式,将无法工作(注意PATH缺失)
setcookie('userLoggedIn', 0, time()-3600);
正确的方法修复了谷歌chrome浏览器的问题
setcookie('userLoggedIn', 0, time()-3600, PATH);
我对“文件”也有同样的问题。在Windows 8.1中,Chrome删除cookie的唯一方法是从任务管理器中关闭它(不是一个真正花哨的方式),所以我决定从后端管理cookie或使用“js-cookie”之类的东西。
解决方案是使用sessionStorage,供参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage