在.NET中驗證使用者是否登入或者是否過期,若需要登入時則將請求轉向至登入頁面。
這個流程在進行頁面請求時是沒問題的,能正確進行頁面跳轉。
然而在使用xmlhttprequest時,或者jq的getJson那種jsonp的方式來請求資源,伺服器將會把這種跳轉解釋為 ‘資源已重新定位’ ,返回碼為302。
但是瀏覽器將結果返回給ajax時並不會解析成302 found,而是會先進行一次資源跳轉,將跳轉後的新資源返回給ajax作為結果。
此時就需要手動去判斷出ajax請求,手動返回302以便ajax捕獲狀態。
同時在前端,需要為angular配置一個http攔截器,攔截所有的responseError,若錯誤碼為302,則根據錯誤資訊進行頁面跳轉。
在後臺進行頁面跳轉時:
為angular配置http攔截器
在配置中新增攔截器