【问题标题】:Internet Explorer: expiration date for cookies doesn't workInternet Explorer:cookie 的到期日期不起作用
【发布时间】:2016-09-28 12:23:33
【问题描述】:

我们正在尝试设置一个 cookie 以使用用户自动登录。

我们正在使用带有 Reactjs + Redux + JavaScript (ES6) 的 SPA,
为了设置 cookie,我们创建了一个名为 CookieHandler 的组件,其中包含设置 cookie 函数

setCookie(token = '', expirationDate = '1970-01-01T00:00:00') {
  const expDay = new Date(expirationDate);

  document.cookie = 'userToken=' + token + '; expires=' + expDay.toUTCString() + '; path=/;';
}

我们还确保只在需要时调用它。
这适用于 Internet Explorer 中的所有浏览器。

问题是 IE 在当前会话中设置了令牌,但是一旦我们关闭窗口并重新打开它,cookie 就消失了,我还尝试使用 toGMTString(已弃用)而不是toUTCString 但还是不行

额外

我们从后端获取userToken和expirationDate,其格式与setCookie函数中的默认值相同

即使我们关闭窗口,在所有其他浏览器中也能正常工作。

【问题讨论】:

  • 您不是将到期日期设置为 1970 年吗? (即过去)
  • 不,我们从后端传递的日期为 6 个月,当我们调用函数时,类似于“2017-03-28T00:00:00”
  • 你能解决这个问题吗?

标签: javascript internet-explorer reactjs cookies ecmascript-6


【解决方案1】:

Here我发现了一些IE不喜欢“=”符号的信息。 也许是问题所在?

不要在 cookie 名称中使用“=”符号。

如果您需要它们,请使用单引号告诉 IE 不要解释它,而是接受它作为文字。

【讨论】:

  • 感谢您的回复,它说不要使用双引号而是使用单引号,您可以看到我们使用单引号。此外,问题不在于没有设置cookie,问题是一旦我们关闭窗口,cookie就消失了。
  • @JoseAPL 我会仔细看看。
猜你喜欢
  • 2017-11-10
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
相关资源
最近更新 更多