cookie的失效时间已经是session,关闭浏览器之后再打开,为什么当前域下的cookie的值还在?(windows系统可以,但是mac系统下不行,除非强制退出chrome浏览器)
cookie的失效时间已经是session,关闭浏览器之后再打开,为什么当前域下的cookie的值还在?(windows系统可以,但是mac系统下不行,除非强制退出chrome浏览器)
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失效,但监听浏览器的方法找找看
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答873 阅读✓ 已解决
5 回答3.1k 阅读
2 回答1.2k 阅读✓ 已解决
Mac下是可以自动清除session级别的cookie的,只要你设置的正确就会清除。
你的情况我猜测是你的测试方法不对,mac的应用管理机制不太一样,win下点【X】就关闭了,而Mac下点【X】实际上相当于关闭所有当前窗口,然后窗体最小化,你需要强制关闭才能生效
试一试吧,应该是可以的