通过配置http拦截器,来进行ajax请求验证用户登录的页面跳转

原创 2016-11-21 09:55:13 1225
摘要:在.NET中验证用户是否登录或者是否过期,若需要登录时则将请求转向至登录页面。这个流程在进行页面请求时是没问题的,能正确进行页面跳转。然而在使用xmlhttprequest时,或者jq的getJson那种jsonp的方式来请求资源,服务器将会把这种跳转解释为 ‘资源已重新定位’ ,返回码为302。但是浏览器将结果返回给ajax时并不会解析成302 found,而是会先进行一次资源跳转,将跳转后的新

在.NET中验证用户是否登录或者是否过期,若需要登录时则将请求转向至登录页面。

这个流程在进行页面请求时是没问题的,能正确进行页面跳转。

然而在使用xmlhttprequest时,或者jq的getJson那种jsonp的方式来请求资源,服务器将会把这种跳转解释为 ‘资源已重新定位’ ,返回码为302。

但是浏览器将结果返回给ajax时并不会解析成302 found,而是会先进行一次资源跳转,将跳转后的新资源返回给ajax作为结果。

此时就需要手动去判断出ajax请求,手动返回302以便ajax捕获状态。

同时在前端,需要为angular配置一个http拦截器,拦截所有的responseError,若错误码为302,则根据错误信息进行页面跳转。

在后台进行页面跳转时:

1.png

为angular配置http拦截器

 2.png

在配置中添加拦截器

3.png

发布手记

热门词条