没有过期日期的Javascript Cookie

Jos*_*ega 127 javascript cookies

我想设置一个永不过期的cookie.这甚至可能吗?

 document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
Run Code Online (Sandbox Code Playgroud)

我不想让日期真的很大,我只是想知道cookie上的expires参数是否有值告诉它永远不会过期.

谢谢.

Pao*_*ino 144

不.无法做到.这样做的"方式"就是使到期日期为2030年.

  • 2020年越来越近了!记得更新你的cookie!;) (258认同)
  • 2020年 - cookiepocalypse的一年 (138认同)
  • 还有四年多的时间.希望你更新cookie. (19认同)
  • 所以,基本上,在 2038 年 1 月 19 日,Chewie 将坐在千年隼号上,再次抱怨银河地图 API 上的 cookie 策略弹出窗口...... (12认同)
  • 现在编辑到2030年,我们将我们的厄运推迟了10年 (11认同)
  • 该死的,它每年都越来越近了,我希望你的代码已经更新了. (9认同)
  • 你对“末日”部分的看法绝对正确。虽然没有看到那么多饼干... (7认同)
  • 天哪,它正在发生!更新您的 Cookie!!!!饼干末日即将来临!!! (5认同)
  • 饼干末日。在这儿。 (3认同)
  • 还能安全使用 80 年 (3认同)
  • 2097……为什么不呢? (2认同)
  • 时间飞逝。 (2认同)
  • 我的男人,您最好不要再拖延了,实际上要更新该cookie。倒数不到一年(如果您将原始日期中的到期日期设置为2020) (2认同)
  • 还有 10 个月了,希望您已经更新了 cookie。;) (2认同)
  • 现在2019,记得更新您的cookie (2认同)
  • 唷。目前安全,但我一定会在 10 年后回来查看。 (2认同)
  • 2100...??? 我们的孙辈将见证饼干末日 (2认同)

小智 97

没有你想要的语法.未设置过期会导致cookie在会话结束时到期.唯一的选择是选择一些任意大的值.请注意,某些浏览器在2038年之后的日期出现问题(当unix纪元时间超过32位int时).

  • 2038-01-19,03:14:08 UTC,确切地说. (18认同)
  • 没有“Expires”或“Max-Age”指令创建的 cookie 是会话 cookie:当客户端关闭时它会被删除。但是,网络浏览器可能会使用**会话恢复**,这使得大多数会话 cookie 成为永久性的,就好像浏览器从未关闭过一样。([来源:MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Session_cookies)) (3认同)

Nim*_*mir 59

您可以在Mozilla文档上执行以下示例:

 document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";
Run Code Online (Sandbox Code Playgroud)

PS

当然,如果人类仍然在10000年的第一分钟使用你的代码就会出现问题:)

  • 你确定它是星期五吗? (76认同)
  • https://www.google.com/webhp?sourceid=chrome-instant&rlz=1C1KMZB_enUS560US560&ion=1&espv=2&ie=UTF-8#q=what+day+is+december+31st+9999&* (6认同)
  • 使用https://www.npmjs.com/package/universal-cookie对我不起作用。使用[2038年解决方案](/sf/answers/2421077291/)。我写了一张票,打算在2030年回来,看看是否有解决办法。 (3认同)

Yus*_*sef 11

所有cookie都根据cookie 规范到期,您可以设置的最大值

 2^31 - 1 = 2147483647 = 2038-01-19 04:14:07
Run Code Online (Sandbox Code Playgroud)

所以最大cookie生活时间是

$.cookie('subscripted_24', true, { expires: 2147483647 });
Run Code Online (Sandbox Code Playgroud)

  • 这个号码对我不起作用.经过一些试验和错误,我能够使用的最高数字是99983090(到期=星期五,9月12日275760 18:10:24 GMT).任何更高的返回"无效日期" (4认同)
  • 对于普通 JS:`document.cookie = 'subscripted_24=true; 过期='+新日期(2147483647 * 1000).toUTCString();` (3认同)

Lia*_*ens 9

您可以在一个月或某事的到期日期设置cookie,然后每次用户再次访问网站时重新分配cookie


Ben*_*ing 8

如果您未设置过期日期,则cookie将在用户会话结束时到期.我建议在unix纪元时间之前使用日期将延伸通过一个32位整数.把它放在你要使用的cookie中document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;,假设randomCookie你正在设置的cookie,true它是各自的值.