ajax、axios、fetch的区别

ajax、axios、fetch 的区别

参考答案:

ajax 是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新。

使用 ajax 发送请求是依靠于一个对象,叫 XmlHttpRequest 对象,通过这个对象我们可以从服务器获取到数据,然后再渲染到我们的页面上。现在几乎所有的浏览器都有这个对象,只有 IE7 以下的没有,而是通过 ActiveXObject 这个对象来创建的。

Fetchajax 非常好的一个替代品,基于 Promise 设计,使用 Fetch 来获取数据时,会返回给我们一个 Pormise 对象,但是 Fetch 是一个低层次的 API ,想要很好的使用 Fetch,需要做一些封装处理。

下面是 Fetch 的一些缺点

  • Fetch 只对网络请求报错,对 400,500 都当做成功的请求,需要封装去处理
  • Fetch 默认不会带 cookie,需要添加配置项。
  • Fetch 不支持 abort ,不支持超时控制,使用 setTimeoutPromise.reject 的实现超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费。
  • Fetch 没有办法原生监测请求的进度,而 XHR 可以。

Vue2.0 之后,axios 开始受到更多的欢迎了。其实 axios 也是对原生 XHR 的一种封装,不过是 Promise 实现版本。它可以用于浏览器和 nodejsHTTP 客户端,符合最新的 ES 规范。

相关推荐
competes5 分钟前
深圳程序员职业生涯
java·大数据·开发语言·人工智能·java-ee
深蓝轨迹7 分钟前
Redis 消息队列
java·数据库·redis·缓存·面试·秒杀
coderYYY9 分钟前
git push报错Authentication failed for ‘xxx’也不会弹要求输入用户名密码的最终解决方法
前端·git·gitee·github
小小小米粒17 分钟前
Collection(单列集合)、Map(双列集合),容易搞混的 Collections 工具类。
java·开发语言
二本咕咕-机械转码19 分钟前
STM32是怎么跑起来的?启动流程 + 时钟树一次讲透(面试高频)
stm32·嵌入式硬件·面试
Rhystt24 分钟前
代码随想录算法训练营第六十天|多余的边?从基础到进阶!
开发语言·c++·算法·图论
东离与糖宝34 分钟前
零基础Java学生面试通关手册:项目+算法+框架一次搞定
java·人工智能·面试
gaozhiyong081336 分钟前
超越跑分:Gemini 3.1 Pro 2026年多维度能力评估体系深度拆解
java·开发语言
皙然37 分钟前
深入解析Java volatile关键字:作用、底层原理与实战避坑
java·开发语言
再玩一会儿看代码38 分钟前
Java中 next() 和 nextLine() 有什么区别?一篇文章彻底搞懂
java·开发语言·经验分享·笔记·学习