J*aScript网络请求_Axios拦截器与错误处理


通过Axios拦截器可统一处理请求和响应,如添加认证头、处理401错误跳转登录页,并结合自定义实例封装提升代码可维护性。

javascript网络请求_axios拦截器与错误处理

Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发起网络请求。在实际开发中,我们经常需要统一处理请求和响应,以及网络异常或后端返回的错误信息。通过 Axios 提供的拦截器机制和完善的错误处理策略,可以有效提升代码的可维护性和用户体验。

使用拦截器统一处理请求与响应

拦截器允许我们在请求发送前或响应返回后进行一些通用操作,比如添加认证头、设置加载状态、日志记录等。

请求拦截器

常用于添加身份验证 token、设置默认请求头、显示 loading 动画等:

axios.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    // 可以在此处开启 loading
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);
  

响应拦截器

可用于统一处理响应数据、关闭 loading、处理特定状态码(如 401 未授权):

axios.interceptors.response.use(
  response => {
    // 直接返回响应数据,简化调用层处理
    return response.data;
  },
  error => {
    // 在此处统一处理错误
    return Promise.reject(error);
  }
);
  

全面的错误处理机制

Axios 的错误可能是网络问题、超时、服务器异常或业务逻辑错误。我们需要区分不同类型的错误并做出相应处理。

度加剪辑 度加剪辑

度加剪辑(原度咔剪辑),百度旗下AI创作工具

度加剪辑 380 查看详情 度加剪辑 判断错误类型

通过检查 error 对象的属性,可以识别错误来源:

  • error.response:存在说明服务器已响应,但状态码不在 2xx 范围,例如 400、401、500
  • error.request:存在但无响应,通常是网络中断或服务器无响应
  • error.message 或配置问题,如超时、取消请求等
示例:在拦截器中处理常见错误

axios.interceptors.response.use(
  response => {
    return response.data;
  },
  error => {
    if (error.response) {
      // 服务器返回了错误状态码
      switch (error.response.status) {
        case 401:
          // 通常表示登录过期,跳转到登录页
          window.location.href = '/login';
          break;
        case 403:
          alert('权限不足');
          break;
        case 500:
          alert('服务器内部错误,请稍后再试');
          break;
        default:
          alert(`请求失败:${error.response.data.message || '未知错误'}`);
      }
    } else if (error.request) {
      // 网络异常,如断网、服务不可达
      alert('网络连接失败,请检查网络');
    } else {
      // 其他错误,如设置请求时出错
      console.error('请求配置异常:', error.message);
    }

    // 将错误继续抛出,便于调用层捕获
    return Promise.reject(error);
  }
);
  

实际使用中的建议

为了提高灵活性和复用性,建议将拦截器和实例封装在一起,避免污染全局 axios。

创建自定义实例:

const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 10000
});

// 添加该实例的拦截器
api.interceptors.request.use( ... );
api.interceptors.response.use( ... );

export default api;
  

在组件中直接使用:

api.get('/user/profile')
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    // 仍可捕获特殊场景下的错误
  });
  

基本上就这些。合理使用拦截器和错误处理,能让网络请求更健壮、代码更清晰。

以上就是J*aScript网络请求_Axios拦截器与错误处理的详细内容,更多请关注其它相关文章!


# 如何使用  # 城中网站定制建设  # 临沂网站优化联系企  # 医疗网站建设好么  # 佛山网站推广公司招聘  # 小红书seo入门  # 阳江网站公司推广方法  # 女网红关键词排名软件  # 河北seo营销怎么选  # seo查询工具  # 小会seo  # 和深  # 迭代  # 是一个  # 如何处理  # javascript  # 有何  # 自定义  # 它是  # 拦截器  # win  # switch  # ios  # 后端  # axios  # 浏览器  # node  # node.js  # js  # java 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 在Django单元测试中优雅处理信号:基于环境的条件执行策略  暴风影音官网正式版_暴风影音手机版官网下载安卓  《东方航空》添加乘机人方法  《三国:谋定天下》平民全阶段通用阵容  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  Excel如何快速找到并断开外部数据源链接_Excel外部数据源断开方法  从HTML表单获取逗号分隔值并转换为NumPy数组进行预测  哔哩哔哩在线观看入口 B站官网免费进入  VS Code中的Tailwind CSS IntelliSense插件使用技巧  《下一站江湖2》风神腿获取攻略  画质怪兽120帧安卓和平精英免费版  大众点评了却看不到是怎么回事  《律学法考》查看学习数据方法  163邮箱登录入口官网 163.com邮箱登录入口  如何使用 composer 和 aop-php 实现 AOP 编程?  行者app怎样导出日志  小红书网页版怎么进 小红书网页版通用入口  《虎扑》关闭社区内容推荐方法  sublime如何配置PHP开发环境_在sublime中运行与调试PHP代码  TikTok网页版实时观看入口 TikTok网页版短视频在线浏览  Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改  知音漫客官网首页入口_知音漫客热门漫画推荐  键盘测试软件哪个好_键盘故障检测工具推荐  《原神》月之一版本新增书籍一览  Golang如何测试结构体方法_Golang reflect方法测试与调用技巧  苹果手机聊天记录删除了如何恢复  京东物流快递破损了怎么办_京东快递破损理赔流程  背部总是隐隐作痛怎么回事 背痛如何改善  Highcharts雷达图径向轴数值标签实现教程  阿里云共享相册入口在哪  Excel如何设置动态下拉菜单_Excel表格下拉选项快速方法  海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接  steam缓存文件在哪儿_steam缓存文件的路径查找方法与结构说明  TikTok视频播放不流畅怎么办 TikTok视频播放优化方法  《淘票票》添加到苹果钱包教程  百度识图图像分析 百度识图识别平台  Pandas中基于动态偏移量实现DataFrame列值位移的策略  德邦快递会员怎么开通  12306售票时间最新规定 | 网上订票和车站窗口时间一样吗  汽水音乐官方网站登录入口_汽水音乐网页版进入链接  LINUX怎么查看显卡信息_LINUX查看GPU状态  Excel宏怎么删除_Excel中删除宏的详细操作流程  使用document.execCommand实现Web文本编辑器加粗/取消加粗  电脑开不了机怎么办 电脑无法开机的解决方法  j*a中赋值运算符是什么?  在VS Code中利用AI辅助进行代码迁移  excel怎么制作考勤表 excel考勤模板与函数公式讲解  J*aScript桌面应用_Electron多进程架构实战  Win10关闭UAC用户账户控制的方法 Win10降低安全提示等级【技巧】  VS Code如何设置默认配置 

 2025-11-22

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.