删除/过期cookie在Windows 7和Windows 10的IE11中的工作方式不同

问题描述 投票:-2回答:1

我有一个Web应用程序,在打开模块时会创建用户名和sessionid 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。

javascript cookies internet-explorer-11 windows-10-desktop
1个回答
0
投票

问题是到期日。.70年1月1日

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

由于两台机器都使用IE11浏览器,所以我怀疑cookie到期日期的工作差异是由于操作系统引起的。

将年份值更改为1970年1月1日可以解决此问题,并且在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%>';

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

© www.soinside.com 2019 - 2024. All rights reserved.