[vue] ajax、fetch、axios这三都有什么区别?
Activity
wenyejie commentedon Jun 27, 2019
ajax, 实际上就是xmlHttpRequest, 旧瓶装新酒的一种新应用的称呼
fetch是新出的规范, 具体实现原理不太清楚, 但是内部返回的是一个Promise
axios是基于ajax的再次封装返回的也是Promise
qq326943819 commentedon Jun 28, 2019
ajax是概念 异步交换数据的概念
fetch是浏览器提供的webAPI 原理是基于xmlHttpRequest的封装
axios是第三方库 基于xmlHttpRequest的封装 使用更便捷
bocaiJs commentedon Jul 12, 2019
ajax是最早出现发送后端请求的技术,属于原生js范畴,核心是使用XMLHttpRequest对象,使用较多并有先后顺序的话,容易产生回调地狱。
fetch号称可以代替ajax的技术,是基于es6中的Promise对象设计的,参数和jQuery中的ajax类似,它并不是对ajax进一步封装,它属于原生js范畴。没有使用XMLHttpRequest对象。
axios不是原生js,使用时需要对其进行安装,客户端和服务器端都可以使用,可以在请求和相应阶段进行拦截,基于promise对象。
https://blog.csdn.net/jennyya/article/details/83687622
zhangyuexin commentedon Jun 13, 2020
ajax:封装了原生的XHR,发送请求。
axios:同样使用XHR,不过与ajax不同的是,axios是在nodejs中发送请求。
fetch:不是XHR,而是另一种api。
区别很多,不过我认为这几个是重要区别
radio-qq commentedon Jan 1, 2021
个人理解,不一定对:
ajax:最原始的后端请求技术,new XMLHttpRequest()创建xhr对象,用setRequestHeader()设置请求头、send发送请求等。。
axios:写法axios().then().catch(),基于XMLHttpRequest封装的Promise实现版本,区别有从 node.js 创建 http 请求等
fetch:fetch().then().then().catch(),基于原生js,没有使用XMLHttpRequest对象