Axios 是基于 Promise 的 HTTP 客户端,支持浏览器与 Node.js,内置拦截器、自动 JSON 处理、XSRF 防护、请求取消、超时控制及 TypeScript 类型推导,简化异步请求开发。
Axios 是一个基于 Promise 的 HTTP 客户端,专为浏览器和
Node.js 环境设计,用于发送异步请求。它不是浏览器原生 API(不像 fetch 或 XMLHttpRequest),而是需要安装引入的第三方库,但因其功能完备、使用统一,已成为 Vue、React 项目中事实上的请求标准。
所有 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 错误做上报.use(..., { priority: 2 })),执行顺序更可控很多要自己封装的功能,Axios 已经内置:
JSON.stringify,收响应自动 res.json()
xsrf-token cookie 并设为请求头AbortController(新版)或 CancelToken(旧版)终止未完成请求timeout: 5000 直接配置,无需手动 setTimeout
TypeScript 全量重构后,类型推导更精准:
axios.get('/user/1') → data 自动识别为 User 类型axios.debug.interceptors() 查看当前执行链路基本上就这些。它不替代 fetch,而是把 fetch 没覆盖的常见需求——比如拦截、取消、默认 JSON 处理、XSRF 防护——都打包好了,省去重复造轮子的成本。