Chrome无法使用分号保存Cookie

fra*_*al5 5 javascript cookies

我正在尝试在javascript中使用此功能在我的网站上保存cookie

setCookie: function(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=/";
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这在Chrome中不起作用.它虽然适用于Firefox.

如果我将分号更改为逗号而不是如下所示,则可以在Chrome中使用.但是属性被设置为cookie值的一部分,而不是浏览器可以读取的属性.

document.cookie = cname + "=" + cvalue + "," + expires + ",path=/";
Run Code Online (Sandbox Code Playgroud)

而且,这只是在上周开始发生的.有没有人注意到这一点?如果是这样,如果有解决方案吗?

谢谢.

更新:

日期格式似乎存在问题.我开始使用max-age而不是整数值秒,它现在工作正常,即使使用分号.

Kyl*_*son 4

只有某些字段用分号进行谓词。根据 MDN文档

以下任何 cookie 属性值都可以选择跟随键值对,指定要设置/更新的 cookie,并在前面添加分号分隔符:

属性值为:

;路径=路径

;域=域

;最大年龄=最大年龄

;过期=日期

;安全的

以下代码块适用于 Chrome 版本 58.0.3029.96(64 位)。

var cname = "MyCookie";
var cvalue = "kjqwrQR1515jetrQT26jo2u5";
var expires = " ;expires=" + Date.now() + 100000;

document.cookie = cname + "=" + cvalue + expires + " ;path=/";
Run Code Online (Sandbox Code Playgroud)

如果这种格式不适合您,您的cname cvalue, 和 的值是什么exdays