Ajax fetch Axios 的区别

news/2024/7/2 23:56:13

AJAX:一种创建交互式网页应用的网页执行交互技术

通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。意味着:在不重新加载整个网页 的情况下,对网页某部分进行更新。

缺点:

针对MVC编程,不符合前端MVVM;基于原生XHR;配置和调用方式非常混乱,基于事件的异步模型不友好;

Fetch:

ES6中的promise对象,不是ajax进一步封装,而是原生js,没有使用XMLHttpRequest对象。

fetch 语法简洁,更加语义化;基于标准Promise实现,支持async/await 

缺点:

① fetch 只对网络请求报错,对400,500 都当做成功的请求,服务器返回400,500 错误码时不会reject,只有网络错误这些导致请求不能完成时,fetch才会被 reject。

② fetch 默 认 不 会 带 cookie , 需 要 添 加 配 置 项 : fetch(url, {credentials: 'include'})。

③ fetch 不 支 持 abort , 不 支 持 超 时 控 制 , 使 用 setTimeout 及 Promise.reject 的实现的超时控制并不能阻止请求过程继续在后台 运行,造成了流量的浪费。
④ fetch 没有办法原生监测请求的进度,而 XHR 可以。

(3)Axios 是一种基于Promise封装的HTTP客户端

浏览器发起XMLHttpRequest

node端发起http请求

支持promise API

监听请求和返回

对请求和返回进行转化

取消请求

自动转化json数据

客户端支持低于XSRF攻击


http://lihuaxi.xjx100.cn/news/1461182.html

相关文章

无涯教程-TensorFlow - 优化器

Optimizers是扩展类,其中包括用于训练特定模型的附加信息,Optimizers类使用给定的参数初始化,用于提高速度和性能,以训练特定模型。 TensorFlow的基本Optimizers是- tf.train.Optimizer 此类在tensorflow/python/training/opti…

汽车OTA活动高质量发展的“常”与“新”

伴随着车主的频繁崔更,车企除了卷硬件、拼价格,逐渐将精力转移到汽车全生命周期的常用常新。时至下半年,车企OTA圈愈发热闹,以新势力、新实力为代表新一代车企,OTA运营活动逐渐进入高质量发展期。 所谓高质量&#xf…

【以太网通信】RS232 串口转以太网

最近和 RK 研发同事在调试通信接口,排查与定位 RK3399 接收数据出错的问题。FPGA 与 RK3399 之间使用一路 RS232 串口进行通信,由于串口数据没有分包,不方便排查问题,想到可以开发一个 RS232 串口转以太网的工具,将串口…

微信小程序picker组件的简单使用 单选

<picker mode"selector" range"{{classData}}" bindchange"bindClassChange" value"{{classIndex}}" range-key"className"><view class"picker">{{classData[classIndex].className || 请选择班级}}…

linux RabbitMQ-3.8.5 安装

软件版本操作系统CentOS Linux release 7.9.2009erlangerlang-23.0.2-1.el7.x86_64rabbitMQrabbitmq-server-3.8.5-1.el7 RabbitMQ的安装首先需要安装Erlang,因为它是基于Erlang的VM运行的。 RabbitMQ安装需要依赖:socat和logrotate&#xff0c;logrotate操作系统已经存在了&…

ARM体系结构学习笔记:位操作和灵活的2nd操作数

位操作 移位运算 数据传输指令 灵活的2nd操作数 Set a bit a | (1 << 5)Clear a bit a & ~(1 << 5)Toggling a bt a ^ 1<<5

C运行时错误——error realloc(): invalid next size

在LeetCode做题时遇到一个运行时错误&#xff0c;将引起问题的原因记录一下备忘&#xff1a; 我们在malloc或calloc等API分配内存时&#xff0c;libc库除了分配给我们在参数中设定大小的内存&#xff08;可能会有内存对齐&#xff0c;实际分配的比参数设定的要多&#xff09;&…

redis---》高级用法之慢查询/pipline与事务/发布订阅/bitmap位图/HyperLogLog/GEO地理位置信息/持久化

高级用法之慢查询 # 配置一个时间&#xff0c;如果查询时间超过了我们设置的时间&#xff0c;我们就认为这是一个慢查询 # 配置的慢查询&#xff0c;只在命令执行阶段# 慢查询演示-设置慢查询---》只要超过某个时间的命令---》都会保存起来# 设置记录所有命令CONFIG SET slowl…