Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在拦截器中访问Axios错误代码_Javascript_Reactjs_Axios - Fatal编程技术网

Javascript 在拦截器中访问Axios错误代码

Javascript 在拦截器中访问Axios错误代码,javascript,reactjs,axios,Javascript,Reactjs,Axios,在客户端JavaScript/React/etc中使用响应拦截器时,如何访问以下错误代码: 错误连接被拒绝(API服务器关闭) ERR\u INTERNET\u断开连接(本地网络已关闭) 我注意到这些代码是通过axios/lib/adapters/xhr.js打印到控制台的,但我似乎不知道如何在我的响应拦截器中访问它们 代码: axios.interceptors.response.use(null,(error)=>{ 控制台日志(错误); 返回承诺。拒绝(错误); } 注意:关键是在向

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

  • 错误连接被拒绝
    (API服务器关闭)
  • ERR\u INTERNET\u断开连接
    (本地网络已关闭)
我注意到这些代码是通过
axios/lib/adapters/xhr.js
打印到控制台的,但我似乎不知道如何在我的响应拦截器中访问它们

代码:

axios.interceptors.response.use(null,(error)=>{
控制台日志(错误);
返回承诺。拒绝(错误);
}

注意:关键是在向用户显示错误消息时,能够区分“您的internet已关闭”和“我们的API已关闭”。

您可以获得如下状态
error.response.status
,但请编写安全代码,因为它并不总是正确的。在502的情况下,error.response未定义且将中断

下面是您如何处理错误的方法

axios.interceptors.response.use(null,(error)=>{
如果(error.message===‘网络错误’){
如果(错误?.response?.status')==504){
扔{
消息:“出现问题。请稍后再试。”,
};
}否则{
扔{
消息:“您未连接到internet。请验证您的连接,然后重试。”,
};
}
}
if(error.response){
if(error.response.status==500){
扔{
消息:“出现问题。请稍后再试。”,
};
}
if(error.response.status==401){
//注销逻辑
}
if(error.response.status===403){
//将用户重定向到某个主页,因为不允许该操作
}
抛出{…error.response.data,statusCode:error.response.status};
}
扔{
消息:“出现问题。请稍后再试。”,
};

});谢谢,但恐怕这不能回答问题。我想阅读所解释的
错误
代码。使用您的代码,它会打印“您未连接到internet。请验证您的连接,然后重试”,即使我已连接且API已关闭。我希望在向用户显示错误消息时能够区分“您的internet已关闭”和“我们的API已关闭”。