什么是fetch,它和axios有什么区别?

208 阅读1分钟

1.什么是fetch?

fetch是一个用于在JavaScript中发出HTTP请求的对象,它是XMLHttpRequest的替代品,提供了更具可扩展性和高效性的功能。fetch返回的是一个Promise对象,可以通过链式调用来处理响应结果。fetch不属于ES标准,而是一个单独的Web API.

2.fetch和axios有什么区别?

fetch和axios都是用于在JavaScript中发送HTTP请求的库,但是它们有一些区别,主要有以下几点:

  • fetch是一个浏览器原生提供的对象,不需要额外安装,而axios是一个第三方库,需要通过npm或者cdn引入。
  • fetch返回的是一个未处理的方法集合,需要通过调用不同的方法来获取不同类型的数据,例如response.json()或者response.text()。而axios返回的是一个已经解析为json格式的数据对象。
  • fetch默认不会发送或接收任何cookies,需要手动设置credentials选项。而axios默认会在同源请求中发送cookies,并且可以自动转换JSON数据。
  • fetch只对网络请求报错,对400或500等状态码不会报错,需要手动判断并抛出异常。而axios会对状态码进行判断,并根据不同情况返回resolve或reject。
  • axios具有一些fetch没有的特性,例如拦截器、取消请求、防御XSRF等。