请检查以下两张图片:
我要实现的逻辑如下: 我们有一个门户网站,用户可以在其中模拟另一个用户。现在,当用户结束 session 并再次启动浏览器时,模拟应该停止并且用户注销。
为了实现这一点,我在登录时设置了两个 cookie,一个 cookie 的有效期为 +99 天,另一个 cookie 没有过期属性。
在 IE11 中,过期列是完全空的,我不知道为什么。但是当我关闭窗口并结束 session 时,cookie 仍然存在并且我的逻辑不起作用。
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');
}
}
cookie 是这样设置的:
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有关。
但通常它是有效的。
关于javascript - session Cookie 在 IE11 中有错误行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537799/