Fetch vs Axios
1 min read
Axios 相比于原生 fetch 在客户端使用时有许多优势:
-
自动转换 JSON 数据 - Axios 会自动将响应数据转换为 JSON,而 fetch 需要手动调用
.json()
-
更好的错误处理 - Axios 会对 HTTP 错误状态码(如 404 或 500)自动抛出错误,而 fetch 即使服务器返回 404,promise 也不会被 reject
-
请求和响应拦截器 - Axios 提供拦截器功能,可以在请求发送前或响应接收后进行处理
-
取消请求功能 - Axios 支持取消进行中的请求,fetch 虽然可以用 AbortController 实现,但使用更复杂
-
自动处理超时 - Axios 可以直接设置请求超时,fetch 需要额外实现
-
浏览器兼容性 - Axios 能在较旧的浏览器上工作,而 fetch 可能需要额外的 polyfill
-
同时支持 Node.js - Axios 可以在浏览器和 Node.js 环境中使用同样的 API
-
更多请求配置选项 - Axios 提供更丰富的配置选项,比如设置请求头、基础 URL 等
-
内置 CSRF 保护 - Axios 可以自动从 cookie 中获取 XSRF token 并将其添加到请求头中
不过,fetch 相比 Axios 也有一些优势:原生支持(不需要额外安装库)、体积更小,以及成为 Web 标准的一部分。选择哪个工具通常取决于项目的具体需求。