2010-10-14 71 views
6

在我的應用程序中,我使用AJAX加載了一些表。但是當用戶的會話超時時,它會給我登錄頁面作爲響應,並在表格區域加載。AJAX中的會話超時響應

當AJAX調用期間發生會話超時時,我想重定向到登錄頁面可能會在JavaScript中。

+0

我爲時已晚,想不到這樣的問題,並找到了你的問題。在任何頁面加載(服務器端)我檢查用戶的存在。如果他們沒有登錄,那麼我只會死一個字符串,其中將包含ajaxtimeout。我自己的大多數庫檢查responsetext.indexof('ajaxtimeout'),在這種情況下,我會window.location =登錄頁面。 – 2010-10-15 06:44:21

回答

5

呈現登錄頁面時,您可以在響應中附加一個自定義HTTP標頭:X-LOGIN-PAGE: True。然後執行您的AJAX調用,並檢查成功回調中是否存在此自定義標頭。如果存在,則相應採取行動

+0

在這種情況下,我需要在所有頁面上的每個AJAX調用中檢查這一點。 – 2010-10-14 06:34:57

+1

如果您使用的是jQuery,您可以設置全局ajax選項:[jquery.ajaxSetup](http://api.jquery.com/jQuery.ajaxSetup/)並在'complete'回調中執行重定向,而無需修改您現有的AJAX調用。如果你不使用jQuery,取決於你如何執行你的AJAX調用,那麼可能有或者可能不是解決方案。 – 2010-10-14 06:39:40

0

您可以檢查由AJAX調用調用的方法中的身份驗證,如果未找到,則可以僅返回一個標誌。在客戶端頁面的AJAX處理程序中,您可以檢測並重定向到登錄頁面。