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

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

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

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

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

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

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

在后台进行页面跳转时:

 

为angular配置http拦截器

 

在配置中添加拦截器

posted @ 2014-12-08 16:23  桃子夭夭  阅读(2922)  评论(0编辑  收藏  举报