Axios 是基于 Promise 的 HTTP 客户端,支持浏览器与 Node.js,内置拦截器、自动 JSON 处理、XSRF 防护、请求取消、超时控制及 TypeScript 类型推导,简化异步请求开发。

Axios 是一个基于 Promise 的 HTTP 客户端,专为浏览器和 Node.js 环境设计,用于发送异步请求。它不是浏览器原生 API(不像 fetch 或 XMLHttpRequest),而是需要安装引入的第三方库,但因其功能完备、使用统一,已成为 Vue、React 项目中事实上的请求标准。
支持 Promise 和 async/await
所有 Axios 方法都返回 Promise,天然适配现代 JavaScript 异步写法。你可以用 .then().catch(),也可以直接 await,避免回调嵌套,逻辑更清晰。
-
const res = await axios.get('/api/user')—— 直接拿到响应对象 -
res.data就是解析好的 JSON 数据,不用手动response.json() - 错误统一走
catch或try/catch,不需额外判断response.ok
请求与响应拦截器
可以在请求发出前或响应到达后插入自定义逻辑,比如统一加 token、处理登录过期、添加 loading 状态、格式化错误提示等。
- 请求拦截器:自动注入
Authorization头、添加时间戳、序列化参数 - 响应拦截器:统一检查
res.data.code === 401跳转登录页,或对500错误做上报 - 2025 版本支持链式 + 优先级控制(
.use(..., { priority: 2 })),执行顺序更可控
开箱即用的安全与便利特性
很多要自己封装的功能,Axios 已经内置:
立即学习“Java免费学习笔记(深入)”;
- 自动 JSON 序列化与反序列化:传对象自动
JSON.stringify,收响应自动res.json() - 客户端 XSRF 防护:默认读取
xsrf-tokencookie 并设为请求头 - 请求取消机制:通过
AbortController(新版)或CancelToken(旧版)终止未完成请求 - 超时控制:
timeout: 5000直接配置,无需手动setTimeout - 跨平台一致:同一套代码既跑浏览器,也跑 Node.js(如 SSR 或服务端调用)
类型安全与工程友好(2025 新特性)
TypeScript 全量重构后,类型推导更精准:
-
axios.get→('/user/1') data自动识别为User类型 - 请求体参数校验:传错字段类型(如 string 当 number)会在编辑器报错
- 拦截器调试支持:
axios.debug.interceptors()查看当前执行链路
基本上就这些。它不替代 fetch,而是把 fetch 没覆盖的常见需求——比如拦截、取消、默认 JSON 处理、XSRF 防护——都打包好了,省去重复造轮子的成本。










