【发布时间】:2020-12-07 15:21:36
【问题描述】:
我有一个普通的 JS 文件,它设置了 2 个 cookie。其中一个 cookie 集如下所示:
document.cookie = 'user=' + hash
+ '; expires=' + new Date(new Date().getTime() + (1000*3600/* 1000ms*1hr */))
+ '; path=/';
但无论出于何种原因,当我去检查 cookie 时,它都没有设置。该代码肯定正在运行,并且没有其他内容覆盖 cookie。我正在使用开发工具,即使调试器在这个 document.cookie 之后暂停了该行,仍然没有显示它。
如果我直接在控制台中运行该代码,它会将构造的字符串显示为 "user=yjDnIJshyztHOzJq; expires=Mon Dec 07 2020 11:18:22 GMT-0500 (Eastern Standard Time); path=/",但仍然无法设置 cookie。
我只是缺少一些简单的东西吗?是铬的问题吗?我可以在同一个文件中设置不同的 cookie 就好了。日期对象或类似的东西可能有问题吗?格式错误的字符串?
编辑:只是为了展示我正在处理的内容:
club 是我提到的同一个文件中的另一个 cookie,工作正常
编辑:做更多的实验,似乎任何设置了过期日期的 cookie 都不成立。显然已过的到期日期应该被删除,但它似乎也将未来的到期日期视为已过,并像您预期的那样将其清除。
【问题讨论】:
-
“我什么时候去检查”——确切地说,你是如何检查的?
-
'当我去检查'意味着我在控制台中打印 document.cookie 并返回一个空字符串或包含其他 cookie 的字符串
-
设置的时候hash有值吗?
-
是的。您可以在我给出的示例中看到有一串随机字符集。我最好的猜测是它与日期字符串的时区部分有关?
标签: javascript cookies