【问题标题】:setting document.cookie doing nothing设置 document.cookie 什么都不做
【发布时间】: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


【解决方案1】:

这是一个简单的傻瓜!

忘记将.toUTCString() 添加到日期对象,所以它使用toString 而不是我怀疑的时区问题

【讨论】:

    猜你喜欢
    • 2019-10-19
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2014-12-08
    • 1970-01-01
    • 2017-11-06
    • 2019-03-08
    相关资源
    最近更新 更多