我创建了一个登录网页,它通过 javascript 将用户 ID 和密码发送到 Java servlet。当 servlet 验证凭据时,它会向网页发送响应,我使用以下方法将用户名存储在 sessionStorage 中:
sessionStorage.userId=uName; //read uName from servlet & save userId for this session
在此之后,我使用 window.location.replace("home.html")
导航到一个新页面,然后在主页上,我进一步阅读了 userId
使用。
我在 Windows 上使用 Apache Tomcat v8.0。
我通过以下方式在浏览器上运行我的登录页面:
localhost:8080/login.html
10.11.12.13:8080/login.html
(来 self 机器的 IP,在ipconfig
中给出)
本地主机和 IP 的设置在 Chrome 和 Firefox 中运行良好。
但是,在 IE11 中,sessionStorage 仅当我使用 localhost:8080 时才能正常工作。当我提供 IP 地址时,sessionStorage.userId
不会保留其值。
由于 IE 在本地主机上运行良好,我知道 IE 支持 Window.sessionStorage。
我也曾尝试将 userId 保存在一个单独的 .js 文件中,但该值会在页面导航后立即丢失。
任何建议都将受到热烈欢迎。谢谢
最佳答案
我在以下位置找到了答案:Local website renders differently using (IP address or machine name) vs localhost?
事实证明,问题出在我的 html,而不是我的 javascript。我在 head 标签中添加了这一行:
<meta http-equiv="X-UA-Compatible" content="IE=11">
然后修复了它。
关于javascript - 当网页未在本地主机上运行时,IE 中的 window.sessionStorage 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41632035/