不知道我的标题有没有描述清楚,重新描述一下:
现在是一个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
}
axios
的背后是用的 XMLHttpRequest,它是拦截不到 3xx 的响应的。后端要不改的话,你就只能现在这种比较 ugly 的写法。