Vue.js Vue路由器:从axios拦截器路由后的空白页

Vue.js Vue路由器:从axios拦截器路由后的空白页,vue.js,axios,vue-router,Vue.js,Axios,Vue Router,在我的axios.config.js文件中,我有一段代码: axios.interceptors.response.use( config => config, error => { if (error && error.message === "Network Error") { if (router.currentRoute.name !== "login") { router.push({

在我的
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
 },

有什么想法吗?

尝试更改您的
路由器。将
对象推到

router.push({
  path: "errorPage",
  query: { template: "NoConnection" }
});
只能在
路由器内使用
查询
。当指定
路径
时推送
对象,否则如果使用
名称
,则必须改用
参数

如果这不太管用,试试看

router.push({
  name: "errorPage",
  params: { template: "NoConnection" }
});

{
  path: "/error_page/:templateName",
  name: "errorPage",
  component: ErrorPage
},

然后在
错误页面中
获取带有
$router
关键字的
模板名
参数。

尝试更改
路由器。将
对象推到

router.push({
  path: "errorPage",
  query: { template: "NoConnection" }
});
只能在
路由器内使用
查询
。当指定
路径
时推送
对象,否则如果使用
名称
,则必须改用
参数

如果这不太管用,试试看

router.push({
  name: "errorPage",
  params: { template: "NoConnection" }
});

{
  path: "/error_page/:templateName",
  name: "errorPage",
  component: ErrorPage
},

然后在
ErrorPage
中,使用
$router
关键字获取
templateName
参数。

不熟悉axios,但错误回调不应该返回承诺吗?请尝试
返回Vue.auth.logout()。然后…
。您可以显示您的路由配置吗?不熟悉axios,但错误回调不应该返回承诺吗?请尝试
返回Vue.auth.logout()。然后…
。您可以显示路由配置吗?
params
query
是两种不同的东西,我使用它的方式是正确的。我看到路由更改为正确的路由,它只是没有显示任何内容。查看Vue路由器文档,在编程导航中,
query
关键字与
path
一起使用,这可能会影响路由导航。请显示您的主要组件(您在其中添加了
路由器视图
)和
错误页面
组件,好吗?这只是一个示例,它并不意味着这是唯一的方法,也不意味着它在其他任何地方都可以显示。无论如何,它在路由方面是有效的,它路由到正确的位置。我只是测试它,它在我的项目中工作,我没有得到一个空白页。这可能是您的
ErrorPage
组件内部的一个问题,如果不是,我不知道,实际上这是一个重定向问题。只有当我从okta
params
query
这样的外部应用程序重定向时,才会发生这种情况。这是两种不同的东西,我使用它的方式是正确的。我看到路由更改为正确的路由,它只是没有显示任何内容。查看Vue路由器文档,在编程导航中,
query
关键字与
path
一起使用,这可能会影响路由导航。请显示您的主要组件(您在其中添加了
路由器视图
)和
错误页面
组件,好吗?这只是一个示例,它并不意味着这是唯一的方法,也不意味着它在其他任何地方都可以显示。无论如何,它在路由方面是有效的,它路由到正确的位置。我只是测试它,它在我的项目中工作,我没有得到一个空白页。这可能是您的
ErrorPage
组件内部的一个问题,如果不是,我不知道,实际上这是一个重定向问题。只有当我从okta这样的外部应用重定向时才会发生这种情况