接口返回302后浏览器将重定向的页面当作接口请求了?

不知道我的标题有没有描述清楚,重新描述一下:

现在是一个vue的项目,比如有两个页面:
登录页面xxx.com/login和主页xxx.com/main,然后在主页请求了一个接口返回302,接着浏览器根据响应头里面location去请求后端的登录接口,然后没有也发现没有登陆最后再重定向到前端的登陆页面xxx.com/login,但是这个时候浏览器将登录页面也当作了一个接口请求,没有进行跳转。

也搜了说什么axios不能够直接重定向,但是我对这一块不了解,有没有大佬能解答一下?目前暂时用这种解决方案来跳转,因为登录页面当作接口状态码是200能直接操作了。

if (response.request.responseURL && response.request.responseURL.includes("xxx") {
    // redirect via location.href
}
阅读 6.7k
1 个回答

axios 的背后是用的 XMLHttpRequest,它是拦截不到 3xx 的响应的。

后端要不改的话,你就只能现在这种比较 ugly 的写法。

推荐问题