Axios
Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js,核心能力是实例、配置、拦截器、错误模型、取消请求和数据序列化。
#concept
#growing
#network
#browser
#http
#javascript
#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 是面向浏览器和 Node.js 的第三方 Promise HTTP 客户端。它通过 adapter 使用 XHR、Fetch 或 Node HTTP 等底层能力,具体能力与错误细节受版本和 adapter 影响。
它在解决什么
- 统一发 HTTP 请求的方式
- 统一配置和默认值
- 统一请求/响应拦截
- 统一错误处理和取消请求
- 统一 JSON / 表单 / 文件上传处理
- 让浏览器和 Node.js 侧都有相近的使用体验
核心心智模型
可以把 Axios 记成一条稳定链路:
request config描述这次请求instance提供独立默认值和隔离interceptors承载请求与响应的共用处理逻辑response提供统一返回结构error model区分响应错误、请求错误和配置错误cancellation处理客户端中断,不代表服务端写入回滚serialization处理 JSON / 表单 / 文件上传
这篇只做什么
这篇只做入口和导航,不重复展开所有 API 细节。具体内容拆到下面这些原子页里:
和其他请求方式的关系
fetch是平台原生 API,风格更贴近浏览器标准xhr是更老的浏览器原生请求接口ajax是一种“异步局部更新”的实践Axios是第三方库,更偏工程化封装
什么时候优先看这篇
- 想先建立 Axios 的整体心智地图
- 想知道它和 Fetch / XHR 的层级差异
- 想知道它为什么在工程里更顺手