资料库
前端开发
axios vs fetch

为什么要使用 axios,相比于 fetch 有什么优势

axiosfetch 都是在现代浏览器中进行 HTTP 请求的流行工具。虽然它们都能实现相似的功能,但它们在特性和使用方法上有所不同。以下是使用 axios 相较于 fetch 的一些优势:

  1. 错误处理axios 在默认情况下会认为所有 2xx 的状态码是成功的,而非 2xx 的状态码是错误的。在 fetch 中,你需要手动检查 response.ok 来确定请求是否成功。如果请求返回了一个 404 或 500 状态码,fetch 不会自动地标记它为错误。
  2. 超时设置 :与 fetch 不同,axios 允许你设置请求超时,这在你希望请求在一定时间内完成时非常有用。
  3. 自动转换 JSON :当你使用 axios 进行请求时,如果返回的数据是 JSON 格式,它会自动为你进行转换。而在 fetch 中,你需要调用 response.json() 方法来手动转换。
  4. 请求和响应拦截器axios 允许你在请求发送前或响应被 thencatch 处理之前拦截它们,这使得你可以更容易地实现像添加请求头、日志记录等功能。
  5. 请求取消axios 提供了一个取消请求的方法,这在某些场景中,如用户在请求完成之前导航离开页面时,可以非常有用。
  6. 浏览器和 Node.jsaxios 既可以在浏览器中使用,也可以在 Node.js 中使用,这使得它更为通用。
  7. 更丰富的配置选项axios 提供了一些 fetch 没有的配置选项,如在请求中设置代理。
  8. 防御 XSRF :在浏览器环境中,如果网站满足一定的条件,axios 会自动包含一个从 cookie 中获取的 XSRF token,从而增加安全性。

然而,选择 axios 还是 fetch 也取决于项目的需求和开发者的偏好。有些开发者可能更喜欢 fetch 的原生性质和简洁性,特别是在不需要 axios 的额外功能时。