Javascript 会话Cookie在IE11中有错误行为?

Javascript 会话Cookie在IE11中有错误行为?,javascript,session,cookies,Javascript,Session,Cookies,请查看以下两张图片: 我想要实现的逻辑如下: 我们有一个门户网站,用户可以在其中模拟另一个用户。现在,当用户结束会话并再次启动浏览器时,应停止模拟并注销用户 为了实现这一点,我在登录时设置了两个cookie,一个cookie的到期日为+99天,另一个cookie没有expires属性 在IE11中,expires列完全为空,我不知道为什么。但是当我关闭窗口并结束会话时,cookie仍然存在,并且我的逻辑不起作用 checkSimulationCookieAndLogOut() { /

请查看以下两张图片:

我想要实现的逻辑如下: 我们有一个门户网站,用户可以在其中模拟另一个用户。现在,当用户结束会话并再次启动浏览器时,应停止模拟并注销用户

为了实现这一点,我在登录时设置了两个cookie,一个cookie的到期日为+99天,另一个cookie没有expires属性

在IE11中,expires列完全为空,我不知道为什么。但是当我关闭窗口并结束会话时,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');
    }
}
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因没有表现出应有的品质而闻名