Javascript - 浏览器关闭后cookie被清除了吗?

问题描述 投票:0回答:1

我正在尝试设置在浏览器关闭后会持续的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的选项,但是没有启用。

我在这里做错了吗?或者饼干已经过时了,我应该坚持使用localStorage

附:我尝试使用max-ageexpires或根本不使用它们,但结果是一样的。

javascript cookies
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.