在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ history.replaceState/pushState改變url,但是地址

history.replaceState/pushState改變url,但是地址欄沒有改變問題

現(xiàn)在公司有一個項目,有一個需求,當從外部網(wǎng)址登錄進來之后,會自動重定向到home頁,如下:
http://localhost:8889/?sessionId=4724-3551655957868--736132069sh#!/app/home,然后需要將之前提前保存的目的網(wǎng)址(如目的網(wǎng)址是 dashboard頁)取出,重定向到目的網(wǎng)址,如window.location.href="http://localhost:8889/app/dashboard"?,F(xiàn)在要求,網(wǎng)址中必須不包含sessionId。重定向到dashboard頁之后,此時網(wǎng)址是http://localhost:8889/#!/app/dashboard,正常,沒有sessionId;但是當用戶點擊瀏覽器回退按鈕時,回退到home頁,此時網(wǎng)址為http://localhost:8889/?sessionId=4724-3551655957868--736132069sh#!/app/home。為了解決回退到home頁時網(wǎng)址中,存在session的問題。

我目前的思路是當用戶從登錄頁重定向到home頁時,利用history對象的window.history.replaceState({},'','http://localhost:8889/#!/app/home'),改變當前路徑的url為http://localhost:8889/#!/app/home,這樣當用戶從dashboard頁點擊瀏覽器回退按鈕時,網(wǎng)址中就不再包含session。

但是,問題時,我才用上述操作之后,連跳轉到dashboard頁,也變?yōu)榱?code>http://localhost:8889/?sessionId=4724-3551655957868--736132069sh#!/app/dashboard。我很納悶,為什么在修改了 瀏覽器歷史清單 之后,地址欄沒有發(fā)生相應的改變。
有知道的同學,麻煩指點下,謝謝!

回答
編輯回答
巫婆

今天找到了另外一個API,window.location.replace,可以解決上述問題,效果很好 @array_huang ,具體鏈接在 這里

2018年1月11日 00:25
編輯回答
負我心

看最后http://localhost:8889/?sessionId=4724-3551655957868--736132069sh#!/app/dashboard這個結果,我估計是跟你用的是hashtag(#)的模式有關,如果你用的是普通的路徑http://localhost:8889/app/home估計就沒有問題了。

你的思路沒有錯,大概是window.history.replaceState不能這么用,這得查查MDN了。

2017年2月22日 07:17