【问题标题】:Delete/expire cookie working differently in IE11 of Windows 7 and Windows 10删除/过期 cookie 在 Windows 7 和 Windows 10 的 IE11 中的工作方式不同
【发布时间】:2019-11-20 13:05:42
【问题描述】:

我有一个 Web 应用程序,它会在打开模块时创建用户名、会话 ID cookie。

使用 document.cookie,我得到的值为“username=xyz, sessionid=123”

在退出应用程序时,我正在删除 cookie,如下所示

document.cookie = 'username=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/<%=appName%>';
document.cookie = 'sessionid=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/<%=appName%>';

在重新打开模块时,再次设置 cookie 值并将值设为“username=xyz, sessionid=123”

它在 Windows 7 中是这样工作的 => 没问题。

与我在 Windows 10 上执行的步骤相同, 第一次 => 对于 document.cookie,我得到的值为“username=xyz, sessionid=123” 关闭并重新打开 document.cookie 的模块 => 后,我得到的值为“username=xyz, sessionid=123, username=, sessionid="

在 Windows 10 上,cookie 是重复的,一个有值,另一个是空白的。 知道吗,为什么在 Windows 10 上会发生这种情况?

我在两台机器上都使用 IE11。

【问题讨论】:

  • 什么样的应用程序?它在浏览器中运行吗?哪些浏览器?过期日期的格式似乎无效。
  • windows 10 不是浏览器 - 所以这个问题没有意义
  • 它是一个网络应用程序,我在win7和win10机器上都使用IE11。
  • 哦,原来是 IE11 问题 - 抱歉,没办法,浏览器已经死了很多年
  • @Bravo 有些客户继续使用在 IE11 上继续工作的旧版应用程序。这个问题似乎与浏览器无关。

标签: javascript cookies internet-explorer-11 windows-10-desktop


【解决方案1】:

问题是到期日期.. 01-Jan-70

看起来,在 Windows 7 机器中,此到期日期被视为 1970,但在 Windows 10 机器中,可能是它没有考虑该值或将其视为 2070。这就是为什么,而不是将 cookie 值更新为空白,正在创建一个新的 cookie。

由于两台机器都使用IE11浏览器,我怀疑cookie过期日期的工作差异是由于操作系统造成的。

将年份值更改为 01-Jan-1970 解决了这个问题,并且在 win7 和 win10 机器上完美运行。

document.cookie = 'username=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/<%=appName%>';
document.cookie = 'sessionid=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/<%=appName%>';

如果有人对此有更多信息,请分享。

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 2020-03-11
    • 1970-01-01
    • 2019-07-04
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多