在Chrome浏览器中,如何设置Cookie的最大使用期限少于213天?

时间:2018-10-15 23:44:29

标签: javascript google-chrome cookies

更新: 解决方法是重新启动计算机。我认为发生此问题是因为最近为了进行测试我多次更改了Windows日期和时间设置。我认为那一定会让Chrome陷入困境。重新启动后,一切都会按预期进行。

当我尝试在Chrome中使用JavaScript设置最长不超过213天的Cookie时,未设置Cookie。我的功能在FireFox中似乎工作正常。

我不确定setCookie函数是否存在错误(如下),或者Chrome是否限制了我。

https://codepen.io/edtalmadge/pen/pxdqvK

function setCookie(name, value, days) {
  document.cookie =
    name + "=" + value + "; Max-Age=" + days * 86400 + "; path=/";
  console.log(document.cookie);
}

setCookie("foo", "123", 212); // no cookie set

setCookie("bar", "456", 213); // cookie is set

1 个答案:

答案 0 :(得分:1)

您的代码确实可以在Chrome上运行,但是max-age拥有quirks in the past。也许可以给expires打个针。您也可以尝试将Max-Age小写为max-age,如docs所示。

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
  var expires = "expires=" + d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

setCookie("foo", "123", 212);
setCookie("bar", "456", 213);