vue

ajax、fetch、axios这三都有什么区别?

发布于 2021-01-11 17:02:38
关注者
0
被浏览
499
5 个回答
  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    ajax, 实际上就是xmlHttpRequest, 旧瓶装新酒的一种新应用的称呼
    fetch是新出的规范, 具体实现原理不太清楚, 但是内部返回的是一个Promise
    axios是基于ajax的再次封装返回的也是Promise

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    ajax是概念 异步交换数据的概念
    fetch是浏览器提供的webAPI 原理是基于xmlHttpRequest的封装
    axios是第三方库 基于xmlHttpRequest的封装 使用更便捷

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    ajax是最早出现发送后端请求的技术,属于原生js范畴,核心是使用XMLHttpRequest对象,使用较多并有先后顺序的话,容易产生回调地狱。

    fetch号称可以代替ajax的技术,是基于es6中的Promise对象设计的,参数和jQuery中的ajax类似,它并不是对ajax进一步封装,它属于原生js范畴。没有使用XMLHttpRequest对象。

    axios不是原生js,使用时需要对其进行安装,客户端和服务器端都可以使用,可以在请求和相应阶段进行拦截,基于promise对象。

    https://blog.csdn.net/jennyya/article/details/83687622

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    ajax:封装了原生的XHR,发送请求。
    axios:同样使用XHR,不过与ajax不同的是,axios是在nodejs中发送请求。
    fetch:不是XHR,而是另一种api。
    区别很多,不过我认为这几个是重要区别

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    个人理解,不一定对:
    ajax:最原始的后端请求技术,new XMLHttpRequest()创建xhr对象,用setRequestHeader()设置请求头、send发送请求等。。
    axios:写法axios().then().catch(),基于XMLHttpRequest封装的Promise实现版本,区别有从 node.js 创建 http 请求等
    fetch:fetch().then().then().catch(),基于原生js,没有使用XMLHttpRequest对象

知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看