特性 | Fetch | Axios |
|---|
HTTP 错误(4xx/5xx)是否进 catch | ❌ 不进,需手动判断 res.ok | ✅ 自动 reject |
自动 JSON 解析 | ❌ 需 res.json() | ✅ 自动解析 response.data |
请求/响应拦截器 | ❌ 无(需自己封装) | ✅ 内置 |
请求超时 | ❌ 需配合 AbortController 手动实现 | ✅ timeout 配置项 |
请求取消 | ✅ AbortController | ✅ AbortController / CancelToken(旧) |
上传/下载进度 | ⚠️ 仅支持下载(ReadableStream);上传需自己实现 | ✅ onUploadProgress / onDownloadProgress |
CSRF/XSRF 防护 | ❌ 无 | ✅ 内置 xsrfCookieName |
默认携带 cookie | ❌ 默认不带(需 credentials: 'include') | ✅ 同源默认带,跨域需 withCredentials: true |
自动转换请求体 | ❌ 需手动 JSON.stringify | ✅ 自动序列化 |
浏览器兼容 | 现代浏览器,IE 不支持 | 通过 XHR 兼容到 IE11 |
Node.js 支持 | Node 18+ 内置 | 全版本支持 |