通過配置http攔截器,來進行ajax請求驗證使用者登入的頁面跳轉

桃子夭夭發表於2014-12-08

在.NET中驗證使用者是否登入或者是否過期,若需要登入時則將請求轉向至登入頁面。

這個流程在進行頁面請求時是沒問題的,能正確進行頁面跳轉。

然而在使用xmlhttprequest時,或者jq的getJson那種jsonp的方式來請求資源,伺服器將會把這種跳轉解釋為 ‘資源已重新定位’ ,返回碼為302。

但是瀏覽器將結果返回給ajax時並不會解析成302 found,而是會先進行一次資源跳轉,將跳轉後的新資源返回給ajax作為結果。

此時就需要手動去判斷出ajax請求,手動返回302以便ajax捕獲狀態。

同時在前端,需要為angular配置一個http攔截器,攔截所有的responseError,若錯誤碼為302,則根據錯誤資訊進行頁面跳轉。

在後臺進行頁面跳轉時:

 

為angular配置http攔截器

 

在配置中新增攔截器

相關文章