我似乎无法在 Google Chrome 中设置寿命较短的 cookie。它们要么没有被设置,要么立即被删除(无法分辨是哪一个,尽管两种方式的结果都是相同的)。仅当未来到期时间为 4 小时或更短时,才会发生这种情况。如果过期时间大于 4 小时,并且 Firefox 或 Safari 中不会出现该问题,则相同的代码可以正常工作。这是一个例子:
不起作用:
exp = new Date();
exp.setMinutes(exp.getMinutes() + 240);
document.cookie="name=value;expires=" + exp + ";path=/";
Works:
exp = new Date();
exp.setMinutes(exp.getMinutes() + 241);
document.cookie="name=value;expires=" + exp + ";path=/";
有人对如何解决这个问题有什么建议吗?
事实上,我在这里查看了 Chromium Source参考 cookies 并在所有的 expires= 语句中发现它们在日期对象上调用 .toGMTString() 或 .toUTCString() ,因此当它隐式地将其转换为格式而不是显式地转换时,可能是一个特殊的日期格式化函数搞砸了设置一个.?!
而不是这个:
document.cookie="name=value;expires=" + exp + ";path=/";
尝试这个:
document.cookie="name=value;expires=" + exp.toUTCString() + ";path=/";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)