Javascript 会话Cookie在IE11中有错误行为?
请查看以下两张图片: 我想要实现的逻辑如下: 我们有一个门户网站,用户可以在其中模拟另一个用户。现在,当用户结束会话并再次启动浏览器时,应停止模拟并注销用户 为了实现这一点,我在登录时设置了两个cookie,一个cookie的到期日为+99天,另一个cookie没有expires属性 在IE11中,expires列完全为空,我不知道为什么。但是当我关闭窗口并结束会话时,cookie仍然存在,并且我的逻辑不起作用Javascript 会话Cookie在IE11中有错误行为?,javascript,session,cookies,Javascript,Session,Cookies,请查看以下两张图片: 我想要实现的逻辑如下: 我们有一个门户网站,用户可以在其中模拟另一个用户。现在,当用户结束会话并再次启动浏览器时,应停止模拟并注销用户 为了实现这一点,我在登录时设置了两个cookie,一个cookie的到期日为+99天,另一个cookie没有expires属性 在IE11中,expires列完全为空,我不知道为什么。但是当我关闭窗口并结束会话时,cookie仍然存在,并且我的逻辑不起作用 checkSimulationCookieAndLogOut() { /
checkSimulationCookieAndLogOut() {
// Checks for cookie if a user is simulated and logs out
let self = this;
let sessionCookie = self.globalFunctions.getCookie('user-is-simulated-session-cookie');
let userSimulationCookie = self.globalFunctions.getCookie('user-is-simulated');
if(!sessionCookie && userSimulationCookie) {
//self.globalFunctions.automaticLogoutAndRedirect();
self.globalFunctions.deleteCookie('user-is-simulated');
console.log('test');
}
}
cookies的设置如下所示:
setCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
self.globalFunctions.setCookie('user-is-simulated-session-cookie', 'true');
self.globalFunctions.setCookie('user-is-simulated', 'true', 99);
self.globalfunctions
只是一个类,它包含一些在整个应用程序中共享的函数
有没有人知道我可以做什么不同的事情,或者我哪里做错了 好吧,我发现它在装有IE11的windows机器上工作。所以也许这和virtualbox有关
但总的来说是有效的。也许这就是原因?嘿,谢谢,我也看到了,但我没有设置“域”值尝试将域值设置为“/”(根)无处不在。不久前我遇到了一个类似的问题,这就解决了它。我还想问一下,为什么你不使用会话而不是cookies来完成这个任务?对我来说,这类任务听起来更合适。你是如何结束这次会议的?只需关闭浏览器?您确定ie11在浏览器关闭时结束会话,而在打开时不重新启动会话吗?或者您是否检测到代码中的窗口关闭并使会话无效?这可能是问题所在吗?IE因没有表现出应有的品质而闻名