Plugins 如何在Nuxt插件中使用错误函数?
我正在使用Nuxt和 我正在尝试通过axios全局拦截器处理全局错误 如何在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(
// ~/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,如果需要了解答案,请添加更多描述和代码,因为它会尽快解决其他人的问题。