ajax与302

You can’t handle redirects with XHR callbacks because the browser takes care of them automatically. You will only get back what at the redirected location.

在ajax进行请求时,如果服务器返回302(重定向),ajax并不会马上收的,因为浏览器自动去访问了重定向的哪个连接,然后再返回结果。也就说,如果需要重定向的连接或者说是接口,是合法可以调用的,那ajax会返回重定向的那个连接的调用结果,反则就返回404。

大概流程如下:

1
ajax -> browser -> server -> 302 -> browser(redirect) -> server -> browser -> ajax callback

如是需要利用重定向来跳转到某些页面,就不能直接返还302了。

常见的情况,登录过期,需要跳转到登录页面,这种情况,建议在返回需要重定向的状态码,例如返回{status: 302}, 然后由前端进行页面跳转。