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

标签 javascript cookies

我正在尝试设置在浏览器关闭后仍保留的 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 的选项,但它没有启用。

我在这里做错了什么吗?或者 cookies 已经过时了,我应该坚持 localStorage

附注我尝试使用 max-age , expires或者根本不使用它们,但结果是相同的。

最佳答案

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

因此,默认行为是 session 关闭时过期,要更改它,需要通过 expiresmax-age 属性指定一些持续时间。

根据 Mozzila 文档:“如果既没有过期也没有指定 max-age,它将在 session 结束时过期。”

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

关于Javascript - 浏览器关闭后cookie会被清除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55207362/

相关文章:

javascript - 了解 CodePen 的 IDE 如何与 2d 射击游戏一起工作

javascript - ga() 函数 Google Analytics 在 Google 跟踪代码管理器中作为标签实现

Angular 2 - 从响应中获取 cookie

wordpress - 由于 WordPress 中的意外输出,Cookie 被阻止

java - Cookie 未在 Chrome 或 Firefox 的本地主机上设置

ios - 如何在 iOS 的 UIWebview 中删除特定的 cookie

javascript - 使 div 和输入宽度为父级的 100%

javascript - 基于 json 到数组数组的日期的平均值

javascript - 英特尔 XDK,基于地理定位

javascript - 当根本没有设置时,该文档如何能够检测到 cookie?