Ajax、Axios和Fetch的区别

本文主要介绍Ajax、Axios和Fetch的区别

XMLHttpRequest

XMLHttpRequest(XHR)对象用于在页面已加载后从服务器接收数据,可以在不重新加载页面的情况下更新网页。
所有现代浏览器 (IE7+、Firefox、Chrome、Safari 以及 Opera) 都内建了 XMLHttpRequest 对象。

Ajax

JQuery的Ajax是对原生XHR的封装,支持JSONP。
缺点:

  1. 无法实现并发,多个请求之间如果有先后关系的话,就会出现回调地域。
  2. 没有单独的库,需要引入JQuery,不符合MVVM思想。

Axios

Axios是基于Promise,本质上也是对原生XHR的封装。
优点:

  1. 客户端支持防止CSRF。
  2. 提供了一些并发请求的接口。
  3. 可以拦截请求和响应。
  4. 可以取消请求。

Fetch

Fetch是基于Promise设计的,是原生js,没有使用XHR对象。
优点:

  1. 配置项更丰富。
  2. JS底层API,扩展性强。
    缺点:
    兼容性不强,毕竟XHR已经根深蒂固。
扫一扫,请老师喝水