2010-02-25 57 views
2

您正在使用ASP.NET MVC和jQuery。你做了很多AJAX調用。如果用戶點擊某個內容並且會話超時,您想要通知用戶。有沒有人有一個很好的現有解決方案,還包括在啓動AJAX請求後通知用戶超時?我們已經知道非AJAX ASP.NET應用程序的解決方案,這些解決方案包括檢測Global.asax中的超時並重定向到特定頁面。但是,重定向AJAX請求是有問題的,因爲用戶要麼看不到,要麼看不到它,還是會看到它在錯誤的上下文。)是否有一個ASP.NET MVC和jQuery的AJAX超時現有的解決方案?

這事幾乎所有的應用需求,所以我只是想確保我不會推倒重來。謝謝!

回答

3

這是我做的:當我的服務器檢測到會話超時,它重新驗證頁面進行響應,而且還設置了一個特殊的頭中的響應。對於Ajax,我只需要我的處理程序查找該頭文件,並且如果它看到它,就會強制重新加載周圍的頁面(使用額外的「nonce」參數以確保它繞過瀏覽器緩存)(即location.href或其他)。

請注意,我的解決方案並不是專門針對ASP.NET的。

+0

沒問題,ASP.NET不需要...我對客戶端處理更加好奇。所以,如果這是一個普通的請求/響應,他們會得到超時通知/登錄頁面,如果這是一個AJAX請求/響應,你檢查這個頭並重定向到那個頁面?這聽起來像一個體面的方式來處理它。 – Pete 2010-02-25 19:19:01

+0

到目前爲止,它對我來說工作正常:-)請注意,外部頁面重新加載時發生的情況是服務器再次檢測到超時*。因此,它會重定向到re-auth頁面,並將原始URL保存爲表單參數,以便在認證後可以將用戶返回到原來的頁面。如你所想,設置和檢測標題非常簡單 - 它甚至不必具有任何特定的值。 – Pointy 2010-02-25 19:31:05

+0

謝謝Pointy。我今晚得到了這個解決方案。這提供了更好的用戶體驗,並且我不需要在服務器端處理任何不同的頁面請求和ajax請求。 – Pete 2010-02-26 01:51:04

相關問題