在我的一個頁面上,我有一個使用ajax以異步方式加載內容的div。當會話過期時,用戶應該被重定向回到登錄屏幕。但是,當會話過期並觸發ajax調用時,登錄頁面將被放入div中。我想要的是將用戶重定向回登錄屏幕。當會話在ajax調用中過期時發回
1
A
回答
0
發送通知回到會話不再有效的JavaScript。當JavaScript獲得相應的錯誤時,請使用window.location = http://example.com/
。
2
解決此問題的一種方法是添加一個文本來唯一標識登錄頁面,並在AJAX回調中將其用於重定向到登錄頁面。下面是使用jQuery global callbacks
一個示例代碼....
$(document).bind("ajaxComplete", function(event, response, ajaxOptions) {
if (response.status == 200 && response.responseText.match(/LOGIN_PAGE_UNIQUE_KEY/)) {
self.location = "/web/login?timeout=1";
return false;
}
});
1
我認爲,擴展報頭是關鍵,登錄頁面可以發送額外的頭由XMLHttpRequest的處理程序被捕獲。
或者在一個更懶惰和不可靠的方法中,如果當前頁面的位置不是登錄頁面,那麼在登錄頁面上使用javascript,然後使用javascript重定向(它依賴於javascript,但是因爲您在製作xhr請求)。
+0
這似乎是一個很好的懶惰技巧。有人測試過這個嗎?感覺懶得去測試它。 – piyush 2012-05-17 12:05:35
相關問題
- 1. 當會話Cookie使用cURL過期時
- 2. Extjs ajax調用中的會話到期
- 3. ajax調用時不要延長會話過期
- 4. Flask會話過期時調用函數
- 5. ASP.NET會話在Ajax請求中過期
- 6. Symfony 2 AJAX會話過期
- 7. 用戶會話獲取在軌Ajax調用過期2
- 8. 當用戶會話過期或返回空時拋出異常
- 9. 在Ajax調用中會話過期時避免顯示登錄頁面
- 10. 當對話框調整大小時,surfaceChanged回調不會觸發
- 11. 如何在ajax調用功能上檢查會話過期
- 12. 如何檢查會話是否在ajax調用上過期?
- 13. 當會話過期時刪除文檔
- 14. 當在asp.net中使用itextsharp生成pdf時會話過期
- 15. AJAX調用會話
- 16. 如何防止會話在使用AJAX時過期?
- 17. 會話重新生成導致快速AJAX調用過期的會話
- 18. 使用回調在網站上過期的會話
- 19. AJAX回調不會觸發
- 20. Http會話過期時如何獲得回調通知
- 21. 當調用ajax調用時會發生什麼?
- 22. 當會話過期使用asp.net mvc的
- 23. 當用戶仍然在網站上時,PHP會話過期
- 24. 當會話cookie在Django中過期時重定向到登錄
- 25. 當會話過期或瀏覽器關閉時在asp.net中觸發事件
- 26. 會議時回傳在Ajax呼叫中過期
- 27. 當用戶閒置3小時時,會話將過期。 php
- 28. 會話過期後調用cherrypy函數
- 29. 會話過期前的調用方法
- 30. 當腳本執行時AJAX調用返回時,JavaScript會發生什麼?
謝謝你的回覆。它工作正常 – vishnu 2010-10-21 05:59:14
很高興我能幫到你。如果您喜歡答案並解決了您的問題,請點擊勾號接受答案。這將幫助其他人知道哪些可能是他們的問題的最佳解決方案 – 2010-10-21 12:41:08
有趣的是,這對我們而言沒有添加任何種類的唯一密鑰。原因在於我們所做的ajax調用是MVC中的部分視圖,因此如果它們成功,responseText就是部分的html。但是,如果失敗,登錄屏幕將加載到div中,並且responseText將自動包含您插入的任何「LOGIN_PAGE_UNIQUE_KEY」,因爲腳本本身是在responseText中返回的。真棒。 – JPeG 2016-09-02 17:52:58