2012-05-02 38 views
0

我有一個使用大量Ajax GET調用的JRuby on Rails應用程序。結果被插入到HTML頁面中。如果會話超時,則生成的html就是登錄頁面。然後將此登錄頁面插入當前HTML頁面。相反,重定向到登錄頁面應該發生...如何在使用GET插入html時捕獲會話超時?

這個問題通常如何解決?

回答

1

因爲瀏覽器隱藏了你的內容,所以你不能捕捉到302--你的ajax請求只是看到了最終的請求。

當這是一個問題時,我通常會更改我的登錄代碼,以便如果未登錄的用戶嘗試訪問受限制的頁面,並且請求是ajax請求,則會呈現特殊狀態代碼(通常是4xx碼)。在你的ajax請求處理程序中檢查狀態碼(取決於j ajax庫,你通常可以設置一個全局處理程序),如果你看到它,將用戶重定向到登錄頁面。