ajax、fetch与axios三者的联系与差异?

ajax、fetch与axios三者的联系与差异?

ajax、fetch与axios是什么,有什么特点?

AJAX

AJAX 特点

是一种特别的http请求, 对服务器端来说, 没有任何区别, 区别在浏览器端

全称为Asynchronous Javascript And XML,就是异步JavaScript和****XML在浏览器中向服务器发送异步请求

最大优势:无刷新获取数据 (局部刷新页面)

Ajax不足点

多个请求之间如果有先后关系的话,就会出现回调地狱

传统 Ajax 原生写法结构比较混乱,不符合关注分离的原则

干掉了Back和History功能,即对浏览器机制的破坏

Fetch

Fetch 特点

是一种HTTP数据请求的方式,是XMLHttpRequest的一种替代方案;fetch是原生JS

相比传统 Ajax 原生结构比较混乱的写法,fetch被设计成更具可扩展性和高效性

Fetch API 是浏览器自带的 API,且它是基于标准 Promise

fetch实例

Fetch 不足有点多

fetch只对网络请求报错,对400,500都当做成功的请求

fetch默认不会带cookie,需要自行添加配置项

fetch不支持abort,不支持超时控制

fetch没有办法原生监测请求的进度

Axios

Axios ( 简单实用 - 尤雨溪大神推荐使用 )

是对原生XHR的一种封装,是Promise实现版本(基于xhr + promise的异步ajax请求库 )

因此支持promise API

同一套代码可以运行在浏览器和 node.js 中

在客户端则使用 XMLHttpRequests

在服务端使用原生 node.js中 http模块

可以在请求和响应阶段统一设置,进行拦截 (ajax、fetch是不支持的)

三者的关系

Ajax 是一种代表异步 JavaScript + XML 的模型(技术合集)

Fetch 也是 Ajax 的一个子集

Axios 属于传统 Ajax(XHR)的子集,因为它是基于 XHR 进行的封装

你可能感兴趣的:(ajax,javascript,前端,前端框架,vue.js)