Axios 直接替代传统 Ajax,通过声明式语法、自动 JSON 处理、内置 Promise、超时/取消机制及拦截器等特性,大幅简化网络请求代码。

Axios 本身就是 Ajax 的现代实现方案,它不是“配合 Ajax”,而是直接替代了传统 Ajax(如 XMLHttpRequest)和较原始的 fetch。所谓“简化网络请求代码”,核心在于用 Axios 的声明式语法、自动处理机制和可复用结构,取代手动管理状态、拼接 URL、解析 JSON、处理错误等繁琐步骤。
用 Axios 替代原生 Ajax 的关键简化点
传统 XMLHttpRequest 写法冗长且易出错:
- 需手动创建实例、设置 open()、监听 onreadystatechange、检查 readyState 和 status
- 响应数据默认是字符串,要
JSON.parse()才能用 - 没有内置 Promise,必须手动包装或嵌套回调
- 超时、取消、请求头设置都要自己实现
Axios 把这些都封装好了,比如 GET 请求只需一行:
axios.get('/api/users?id=123')
或更规范地传参:
立即学习“Java免费学习笔记(深入)”;
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
axios.get('/api/users', { params: { id: 123 } })
自动处理让代码更干净
Axios 默认完成几项高频操作,开发者无需重复写:
-
自动序列化/反序列化 JSON:POST 提交对象时自动转成 JSON 字符串,并设
Content-Type: application/json;响应也自动JSON.parse()成 JS 对象 -
统一错误捕获:HTTP 状态码非 2xx(如 404、500)会进
.catch(),不用再手动判断response.status -
内置超时控制:直接加
timeout: 8000配置,无需setTimeout + abort()组合 - 支持 AbortController 取消请求(v0.22+),也可用旧版 CancelToken,避免组件卸载后更新已销毁实例
通过实例和拦截器消除重复逻辑
真实项目中,每个请求往往要带 token、统一 baseURL、加 loading 状态——这些不用在每个调用处硬编码:
- 创建 axios 实例,预设基础配置:
const api = axios.create({<br> baseURL: '/api',<br> timeout: 10000,<br> headers: { 'X-App-Version': '2.3.0' }<br>}); - 用请求拦截器自动注入 token:
api.interceptors.request.use(config => {<br> const token = localStorage.getItem('token');<br> if (token) config.headers.Authorization = `Bearer ${token}`;<br> return config;<br>}); - 用响应拦截器统一处理业务错误:
api.interceptors.response.use(<br> res => res.data,<br> err => {<br> if (err.response?.status === 401) window.location.href = '/login';<br> return Promise.reject(err);<br> }<br>);
链式调用与语义化方法提升可读性
相比 axios({ method: 'post', url: ..., data: ... }) 的配置式写法,Axios 提供语义化快捷方法,一眼看懂意图:
-
axios.get('/users')→ 明确是读取 -
axios.post('/users', { name: '张三' })→ 明确是新建 -
axios.put('/users/1', { name: '李四' })→ 明确是全量更新 -
axios.delete('/users/1')→ 明确是删除
这种写法比原生 Ajax 或通用 fetch 更贴近 RESTful 设计思想,团队协作时理解成本更低。

















