Axios
Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js,核心能力是实例、配置、拦截器、错误模型、取消请求和数据序列化。
#type / concept
#status / growing
#tech / network
#platform / browser
#resource / http
#resource / javascript
#package / axios
[!info] related notes
- 所属 MOC: HTTP 与前端网络请求
- 对比: 前端 HTTP 请求:XHR vs Fetch vs Axios, Fetch API, XHR, AJAX
- 原子概念: Axios 请求配置, Axios 实例, Axios 拦截器, Axios 响应结构, Axios 错误模型, Axios 取消请求, Axios 数据序列化
- 相关实践: Axios 封装模式, Axios 封装实践, 封装一个优雅的axios
Axios
一句话定义
Axios 是一个基于 Promise 的 HTTP 客户端,不是浏览器标准 API,而是一个第三方库;它把日常发请求最常用的工程能力打包好了。
它在解决什么
- 统一发 HTTP 请求的方式
- 统一配置和默认值
- 统一请求/响应拦截
- 统一错误处理和取消请求
- 统一 JSON / 表单 / 文件上传处理
- 让浏览器和 Node.js 侧都有相近的使用体验
核心心智模型
可以把 Axios 记成一条稳定链路:
request config描述这次请求instance提供独立默认值和隔离interceptors承载横切逻辑response提供统一返回结构error model区分响应错误、请求错误和配置错误cancellation处理主动中断serialization处理 JSON / 表单 / 文件上传
这篇只做什么
这篇只做入口和导航,不重复展开所有 API 细节。具体内容拆到下面这些原子页里:
和其他请求方式的关系
fetch是平台原生 API,风格更贴近浏览器标准xhr是更老的浏览器原生请求接口ajax是一种“异步局部更新”的实践Axios是第三方库,更偏工程化封装
什么时候优先看这篇
- 想先建立 Axios 的整体心智地图
- 想知道它和 Fetch / XHR 的层级差异
- 想知道它为什么在工程里更顺手