2016-03-10 40 views
1

我有一個連接了查詢字符串的URL。頁面加載後,我取出使用刪除頁面刷新時導致問題的查詢參數

history.replaceState("","",location.href.substring(0,location.href.indexOf("?")))

的查詢參數但是,當用戶點擊刷新按鈕,它從我的應用程序顯示錯誤屏幕,因爲預期的查詢參數的URL是不存在。我可以使用後操作,但我想避免查詢參數與頁面刷新工作正常。有沒有解決方案?

+1

考慮爲每個會話和url緩存最後一個查詢,並且在請求頁面時不執行查詢par AMS。這是不是一個好的做法,因爲休息休息原則(無國籍),並使這樣的鏈接不可共享,但將解決您的問題。 –

回答

1

如果您使用的是查詢參數,然後將其刪除,那麼用戶點擊刷新,並且出現錯誤,表示期望查詢參數,則代碼(和邏輯)缺乏。

我的建議,如果你想避免頁面最初加載後的查詢參數,是保存參數在一個cookie甚至會話,如果有代碼隱藏。然後,如果用戶沒有查詢參數刷新,請檢查cookie是否存在,如果cookie存在,則正常顯示頁面,如果沒有,請指示他們沒有通過正確的渠道訪問URL。但是,就像我剛纔提到的,我認爲你的邏輯存在缺陷,因爲如果用戶想要將你的URL分享給外部世界,並且你刪除了使頁面加載成功的關鍵信息,那麼你將會有很多困惑的人在你的手中

編輯

您可能需要調查搜索引擎友好的URL來傳遞您的查詢中,所以不是:yoururl.com/?firstname=joe你可以做yoururl。 com/firstname/joe