cookie的失效时间已经是session,关闭浏览器(Mac下chrome)咋没有清空?

cookie的失效时间已经是session,关闭浏览器之后再打开,为什么当前域下的cookie的值还在?(windows系统可以,但是mac系统下不行,除非强制退出chrome浏览器)

阅读 18.1k
4 个回答

Mac下是可以自动清除session级别的cookie的,只要你设置的正确就会清除。
你的情况我猜测是你的测试方法不对,mac的应用管理机制不太一样,win下点【X】就关闭了,而Mac下点【X】实际上相当于关闭所有当前窗口,然后窗体最小化,你需要强制关闭才能生效

Command + Q

试一试吧,应该是可以的

mac下需要右键chrome图标点击退出才真正退出清理内存。
chrome和firefox在某些情况也会出现退出后不清除session状态的cookie情况,chrome设置从上次标签页打开或者设置了允许chrome退出后app继续运行会造成session状态cookie未清除,具体可以参数这个博客信息:http://blog.petersondave.com/...

expires选项用来设置“cookie 什么时间内有效”。expires其实是cookie失效日期,expires必须是 GMT 格式的时间(可以通过 new Date().toGMTString()或者 new Date().toUTCString() 来获得)。

如expires=Thu, 25 Feb 2016 04:18:00 GMT表示cookie讲在2016年2月25日4:18分之后失效,对于失效的cookie浏览器会清空。如果没有设置该选项,则默认有效期为session,即会话cookie。这种cookie在浏览器关闭后就没有了。

expires 是 http/1.0协议中的选项,在新的http/1.1协议中expires已经由 max-age 选项代替,两者的作用都是限制cookie 的有效时间。expires的值是一个时间点(cookie失效时刻= expires),而max-age 的值是一个以秒为单位时间段(cookie失效时刻= 创建时刻+ max-age)。
另外,max-age 的默认值是 -1(即有效期为 session );若max-age有三种可能值:负数、0、正数。负数:有效期session;0:删除cookie;正数:有效期为创建时刻+ max-age;
业务需求是关闭浏览器干掉cookie,之前的思路是想着不设置expire/max-age关闭浏览器即cookie失效,但绕了一大圈,发现还是不行,最后找了一个模棱两可的办法, 即监听关闭浏览器触发一个方法,设置cookie失效,但监听浏览器的方法找找看

试了无数次,发现 微信浏览器,微信网页开发者工具也是这样的,真的好气啊。一直以为自己设置有问题,关闭浏览器,那个session状态的cookie始终存在,奇葩。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题