簡體   English   中英

當網頁不在本地主機上運行時,IE中的window.sessionStorage問題

[英]window.sessionStorage issue in IE, when webpage is not run on localhost

我創建了一個登錄網頁,該網頁通過javascript將userId和密碼發送到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

我正在通過以下方式在瀏覽器上運行登錄頁面:

  1. localhost:8080/login.html
  2. 10.11.12.13:8080/login.html (來自我機器的IP,在ipconfig給出)

對於本地主機和IP,該設置在Chrome和Firefox中均可正常運行。

但是,在IE11中, 僅當我使用localhost:8080 ,sessionStorage 才能正常工作。 當我提供IP地址時, sessionStorage.userId 不會保留其值。

由於IE在本地主機上運行良好,因此我知道IE支持Window.sessionStorage。

我也嘗試將userId保存在單獨的.js文件中,但是一旦頁面導航,該值就會丟失。

任何建議都將受到熱烈歡迎。 謝謝

我在以下位置找到了答案: 本地網站使用(IP地址或計算機名稱)與本地主機呈現的方式有所不同?

原來,問題出在我的html,而不是我的javascript。 我在head標簽中添加了以下行:

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

並解決了它。

不知道這是否有幫助,但是如果您打開了devtools,有時會導致只有控制台可用,這會導致某些異常而不是有效的代碼。

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

也許這也有幫助: Windows 7上的IE11中的JavaScript localStorage對象損壞

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM