使用 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);
    }
  });
相关推荐
前端大卫1 小时前
Vue3 + Element-Plus 自定义虚拟表格滚动实现方案【附源码】
前端
却尘1 小时前
Next.js 请求最佳实践 - vercel 2026一月发布指南
前端·react.js·next.js
ccnocare1 小时前
浅浅看一下设计模式
前端
Lee川1 小时前
🎬 从标签到屏幕:揭秘现代网页构建与适配之道
前端·面试
Ticnix2 小时前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人2 小时前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl2 小时前
OpenClaw 深度技术解析
前端
崔庆才丨静觅2 小时前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人2 小时前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼2 小时前
shadcn/ui,给你一个真正可控的UI组件库
前端