windows中的window.session存储问题,当网页未在localhost上运行时

时间:2017-01-13 10:09:46

标签: javascript html internet-explorer

我创建了一个登录网页,通过javascript将userId和密码发送到Java servlet。当servlet验证凭据时,它会向网页发送响应,并使用以下命令将userName存储在sessionStorage中:

quit()

在此之后,我使用sessionStorage.userId=uName; //read uName from servlet & save userId for this session 导航到新页面,在家中,我阅读了window.location.replace("home.html")以供进一步使用。

我在 Windows 上使用 Apache Tomcat v8.0

我正在浏览器上运行我的登录页面:

  1. userId
  2. localhost:8080/login.html(来自我的机器的IP,在10.11.12.13:8080/login.html中提供)
  3. 此设置在Chrome和Firefox中适用于localhost和IP。

    但是,在IE11中,sessionStorage只有才能正常工作我使用localhost:8080。当我提供IP地址时,ipconfig 不会保留其值。

    由于IE对localhost工作正常,我知道IE支持Window.sessionStorage。

    我也尝试将userId保存在单独的.js文件中,但只要页面导航,该值就会丢失。

    任何建议都会受到热烈欢迎。感谢

2 个答案:

答案 0 :(得分:2)

我找到了答案:Local website renders differently using (IP address or machine name) vs localhost?

事实证明,问题出在我的HTML上,而不是我的javascript。我在头标记中添加了这一行:

<meta http-equiv="X-UA-Compatible" content="IE=11">

并修复了它。

答案 1 :(得分:1)

不知道这是否有帮助,但是有一段时间只有控制台可用,如果你打开devtools会导致一些例外而不是代码。

您使用的是最新版本的ie11吗?

也许这也有帮助: JavaScript localStorage object broken in IE11 on Windows 7