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