Plugins 如何在Nuxt插件中使用错误函数?

Plugins 如何在Nuxt插件中使用错误函数?,plugins,error-handling,axios,nuxt.js,Plugins,Error Handling,Axios,Nuxt.js,我正在使用Nuxt和 我正在尝试通过axios全局拦截器处理全局错误 如何在Nuxt插件中使用错误函数 // ~/plugins/axios.js export default function ({ $axios, store, redirect, error }) { $axios .onError(apiError => { error({statusCode: '403', message: 'test'}) // It's not work. redirect(

我正在使用Nuxt和

我正在尝试通过axios全局拦截器处理全局错误

如何在Nuxt插件中使用错误函数

// ~/plugins/axios.js

export default function ({ $axios, store, redirect, error }) {
 $axios
 .onError(apiError => {
   error({statusCode: '403', message: 'test'}) // It's not work.
   redirect('http://google.com') // It's work.
  })
}

重定向正在工作。但错误是行不通的。只是显示。

我也有同样的问题

在检查了我的代码之后,我发现当您在asyncData方法中只请求一次数据时,插件中的错误方法就起作用了。然而,若多次请求,错误方法可能无法工作。此方法无法停止在asyncData方法中返回数据


因此,我的解决方案是检查您构建的axios插件中的响应,并在使用promise.all()请求多个api时检查响应。如果不合格,停止返回数据。

您的插件函数应该返回一个承诺,并在调用
error
函数后立即解决,因为Nuxt.js将插件函数视为承诺。就这样

导出默认函数({$axios,错误}){
返回新承诺(解决=>{
$axios.onError(apiError=>{
错误({statusCode:403,消息:'test'}))
解决()
}
})
}

现在它在中可用,您可以使用Axios帮助器处理Nuxt错误,帮助处理拦截

export default function ({ $axios, store, redirect, error: nuxtError }) {
  $axios.onError(error => {
    nuxtError({
      statusCode: error.response.status,
      message: error.message,
      if(statusCode === 403){
        redirect('http://example.com')
      }
    });
    return Promise.resolve(false);
  })
}

有关详细信息,请参见,有关详细信息,请参见它的工作原理。它显示u是403的调试页面error@Aldarund我知道错误函数将重定向到自定义错误页。在中间件中,错误函数重定向到自定义错误页。不理解。您正在调用403代码的错误。而你看到的结果是403代码的错误页面。你期待什么?@Aldarund我想通过错误函数重定向错误拦截器上的“自定义”错误页。然后你只需要自定义错误页布局/error.vuewalcome到StackOverflow,如果需要了解答案,请添加更多描述和代码,因为它会尽快解决其他人的问题。