gpt4 book ai didi

javascript - 在拦截器中访问axios错误代码

转载 作者:行者123 更新时间:2023-12-02 21:10:54 24 4
gpt4 key购买 nike

当使用axios时客户端 JavaScript/React/etc 中的响应拦截器,如何访问如下错误代码:

  • ERR_CONNECTION_REFUSED(API 服务器已关闭)
  • ERR_INTERNET_DISCONNECTED(本地网络已关闭)

我注意到这些代码通过 axios/lib/adapters/xhr.js 打印到控制台,但我似乎无法弄清楚如何在响应拦截器中自己访问它们?

代码:

axios.interceptors.response.use(null, (error) => {

console.log(error.???);

return Promise.reject(error);
}

注意:重点是在向用户显示错误消息时能够区分“您的互联网已关闭”和“我们的 API 已关闭”。

最佳答案

您可以获得像这样的状态 error.response.status 但编写安全代码,因为它并不总是正确的。如果出现 502,error.response 未定义并且会中断

以下是处理错误的方法

axios.interceptors.response.use(null, (error) => {
if (error.message === 'Network Error') {
if (error?.response?.status') === 504) {
throw {
message: 'Something went wrong. Please try again later.',
};
} else {
throw {
message: 'You are not connected to the internet. Verify your connection and then try again.',
};
}
}
if (error.response) {
if (error.response.status === 500) {
throw {
message: 'Something went wrong. Please try again later.',
};
}
if (error.response.status === 401) {
// logout logic
}
if (error.response.status === 403) {
// redirect user to some home page since that action is not allowed
}
throw { ...error.response.data, statusCode: error.response.status };
}
throw {
message: 'Something went wrong. Please try again later.',
};
});

关于javascript - 在拦截器中访问axios错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61099731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com