【发布时间】:2019-10-24 15:53:32
【问题描述】:
在我的axios.config.js 文件中,我有这段代码:
axios.interceptors.response.use(
config => config,
error => {
if (error && error.message === "Network Error") {
if (router.currentRoute.name !== "login") {
router.push({
name: "errorPage",
query: { template: "NoConnection" }
});
}
} else if (error && error.response && error.response.status === 401) {
Vue.auth.logout().then(() => {
router.push({
name: "login"
});
});
} else if (
error &&
error.config.hasOwnProperty("errorHandle") &&
error.config.errorHandle === false
) {
return Promise.reject(error);
} else {
_notifyError(error);
}
return Promise.reject(error);
}
);
当我得到 401 状态代码时,会调用正确的代码,并且路由更改为:http://localhost:8080/#/error_page?template=UnAuthorized,但页面为空白。如果我刷新,我会看到错误页面。
我的路线:
{
path: "/error_page",
name: "errorPage",
component: ErrorPage
},
有什么想法吗?
【问题讨论】:
-
不熟悉axios,但是错误回调不应该返回一个Promise吗?试试
return Vue.auth.logout().then ...。 -
你能显示你的路由配置吗?
标签: vue.js axios vue-router