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