JavaScript-关闭浏览器后清除了cookie?

时间:2019-03-17 13:04:04

标签: javascript cookies

我正在尝试设置cookie,该cookie在关闭浏览器后将持续存在。尽管每次关闭浏览器,cookie都会消失。我以为即使关闭浏览器也应该保留cookie?除非指定要在一段时间后删除?

例如:

console.log("cookies ", document.cookie)
document.cookie = "some_cookie=true; max-age=31536000";

首次使用此JS代码打开页面,它将打印cookies

刷新浏览器后,它会打印cookies some_cookie=true

关闭浏览器并再次打开同一页面后,它会打印cookies

我在Firefox 65.0.2 (64-bit), Chrome 72.0.3626.109 (Official Build) (64-bit) and Chromium 71.0.3578.98 (Official Build) Built on Ubuntu , running on Ubuntu 16.04 (64-bit)上进行了测试(对于Chrome和Chromium,必须使用http服务器,因为如果直接打开原始html文件,则根本不允许设置cookie)。

结果都是一样的,关闭浏览器后,我的cookie被删除。我还检查了关闭浏览器时是否有清除cookie的选项,但未启用。

我在这里做错什么了吗?还是cookie已过时,我应该坚持使用localStorage

P.S。我尝试使用max-ageexpires或根本不使用它们,但是结果是相同的。

1 个答案:

答案 0 :(得分:0)

对我来说,有效的方法是在存储cookie时指定max-age。但是在测试时,我也不得不使用Web服务器来提供我的html文件,因为直接在浏览器中打开纯html文件并不能使其存储到指定的持续时间。即使它说它将在某个日期到期,它仍会在关闭浏览器时删除cookie(这有点不一致)。

因此,默认行为是它在会话关闭时失效,要更改该时间,需要通过expiresmax-age属性指定持续时间。

根据Mozzila文档:“如果既未过期也未指定max-age,则它将在会话结束时过期。”

https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#Write_a_new_cookie