使用 Axios 处理 AxiosError 的三种常见方法

在使用 Axios 时处理 AxiosError 有几种常见的方法:

  1. 使用 try-catch 语句捕获异常:
javascript 复制代码
try {
  const response = await axios.get('/api/data');
  // 处理响应数据
} catch (error) {
  if (error.response) {
    // 请求成功但状态码不在 2xx 范围
    console.log(error.response.data);
    console.log(error.response.status);
    console.log(error.response.headers);
  } else if (error.request) {
    // 请求发出但没有收到响应
    console.log(error.request);
  } else {
    // 在设置请求时发生了错误
    console.log('Error', error.message);
  }
}
  1. 使用 Axios 实例的 interceptors 拦截器:
javascript 复制代码
const instance = axios.create();

instance.interceptors.response.use(
  (response) => {
    // 处理成功响应
    return response;
  },
  (error) => {
    // 处理错误响应
    if (error.response) {
      // 请求成功但状态码不在 2xx 范围
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else if (error.request) {
      // 请求发出但没有收到响应
      console.log(error.request);
    } else {
      // 在设置请求时发生了错误
      console.log('Error', error.message);
    }
    return Promise.reject(error);
  }
);
  1. 使用 axios.isAxiosError() 判断错误是否来自 Axios:
javascript 复制代码
axios.get('/api/data')
  .then((response) => {
    // 处理响应数据
  })
  .catch((error) => {
    if (axios.isAxiosError(error)) {
      // 处理 AxiosError
      if (error.response) {
        // 请求成功但状态码不在 2xx 范围
        console.log(error.response.data);
        console.log(error.response.status);
        console.log(error.response.headers);
      } else if (error.request) {
        // 请求发出但没有收到响应
        console.log(error.request);
      } else {
        // 在设置请求时发生了错误
        console.log('Error', error.message);
      }
    } else {
      // 处理其他类型的错误
      console.log('Error', error);
    }
  });
相关推荐
EndingCoder1 小时前
React从基础入门到高级实战:React 实战项目 - 项目三:实时聊天应用
前端·react.js·架构·前端框架
阿阳微客3 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏
德育处主任Pro3 小时前
『React』Fragment的用法及简写形式
前端·javascript·react.js
CodeBlossom3 小时前
javaweb -html -CSS
前端·javascript·html
打小就很皮...4 小时前
HBuilder 发行Android(apk包)全流程指南
前端·javascript·微信小程序
集成显卡5 小时前
PlayWright | 初识微软出品的 WEB 应用自动化测试框架
前端·chrome·测试工具·microsoft·自动化·edge浏览器
前端小趴菜056 小时前
React - 组件通信
前端·react.js·前端框架
Amy_cx6 小时前
在表单输入框按回车页面刷新的问题
前端·elementui
dancing9996 小时前
cocos3.X的oops框架oops-plugin-excel-to-json改进兼容多表单导出功能
前端·javascript·typescript·游戏程序
后海 0_o7 小时前
2025前端微服务 - 无界 的实战应用
前端·微服务·架构