axios、ajax、fetch三者的区别

1.ajax:是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新
优缺点:
1)局部更新
2)原生支持,不需要任何插件
3)原生支持,不需要任何插件
4)可能破坏浏览器后退功能
5)嵌套回调,难以处理
2.axios:是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
特点:
1)从浏览器中创建 XMLHttpRequests
2)从 node.js 创建 http 请求
3)支持 Promise API
4)拦截请求和响应
5)转换请求数据和响应数据
6)取消请求
7)自动转换 JSON 数据
8)客户端支持防御 XSRF
3.fetch:使用了ES6中的promise对象。Fetch是基于promise设计的。Fetch函数就是原生js,没有使用XMLHttpRequest对象。
优缺点:
1)更加底层,提供的API丰富(request, response)
2)脱离了XHR,是ES规范里新的实现方式
3)fetch是一个低层次的API,你可以把它考虑成原生的XHR,所以使用起来并不是那么舒服,需要进行封装
4)fetch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理

5)fetch默认不会带cookie,需要添加配置项

6)fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费

7)fetch没有办法原生监测请求的进度,而XHR可以

原文地址:https://www.cnblogs.com/ray123/p/11225847.html

时间: 2024-07-31 14:45:54

axios、ajax、fetch三者的区别的相关文章

Vue数据请求 axios vs fetch

Vue数据请求 数据请求在前端开发中的使用有两种形式 使用原生javascript提供的数据请求 ajax( 四部曲,一般需要我们结合Promise去封装,使用不是很便利,但是效率很高 ) fetch( 本身结合了Promise,并且已经做好了封装,可以直接使用 ) 使用格式: 使用别人封装好的第三方库目前最流行的,使用率最高的是 axios vue中我们最常使用的 vue 1.x 的版本提供了一个封装库 vue-resource , 但是到了vue 2.x版本之后,这个就弃用了vue-reso

C#中数组、ArrayList和List三者的区别

在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. [csharp] view plaincopy <span style="font-family:SimSun;font-size:18px;">//数组 string[] s=new string[2]; //赋值 s[0]="a"; s[1]=&quo

ajax同步与异步的区别

jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除.而异步则这个AJAX代码运行中的时候其他代码一样可以运行. ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据. 一.async值为true (异步) 当

json和jsonp的区别,ajax和jsonp的区别

json和jsonp虽然只有一个字母的区别,但是它们之间扯不上关系. json是一种轻量级的数据交换格式. jsonp是一种跨域数据交互协议. json的优点:(1)基于纯文本传递极其简单,(2)轻量级数据格式适合互联网传递,(3)容易编写和解析. ajax和jsonp的区别: 相同点:都是请求一个url 不同点:ajax的核心是通过xmlHttpRequest获取内容 jsonp的核心则是动态添加<script>标签来调用服务器 提供的js脚本. --- <来源于网络>

菜鸟,大牛和教主,三者的区别(转载,有种莫名的喜感。。。)

对菜鸟来说题目有三种:会算法且能AC的,会算法但不能AC的,不会做的 对大牛来说题目有两种:会做的,不会做的 对教主来说题目有两种:能AC的,数据有错的 菜鸟提交WA了,找了N久找不出错时,在论坛大骂数据有错,但是没人理 大牛提交WA了,找了N久找不出错时,写暴力程序或者求别人的AC程序对拍 教主提交WA了,Judge马上修正数据 菜鸟面对一道难题,直接暴搜 大牛面对一道难题,算了算时间复杂度不对,或者证明出是NP难,果断放弃 教主面对一道难题,说,虽然我不会做,但AC还是没有问题的 菜鸟AC了

菜鸟,大牛和教主三者的区别(转自hzwer)

菜鸟,大牛和教主,三者的区别 对菜鸟来说题目有三种:会算法且能AC的,会算法但不能AC的,不会做的 对大牛来说题目有两种:会做的,不会做的 对教主来说题目有两种:能AC的,数据有错的 菜鸟提交WA了,找了N久找不出错时,在论坛大骂数据有错,但是没人理 大牛提交WA了,找了N久找不出错时,写暴力程序或者求别人的AC程序对拍 教主提交WA了,Judge马上修正数据 菜鸟面对一道难题,直接暴搜 大牛面对一道难题,算了算时间复杂度不对,或者证明出是NP难,果断放弃 教主面对一道难题,说,虽然我不会做,但

SIEM、SOC、MSS三者的区别与联系

SIEM.SOC.MSS三者的区别与联系 前言 SIEM和SOC在国内并不是一个新兴的名词,相反在国内安全圈内经过了10余年的挣扎,SIEM已经趋于成熟,但是SOC仍处于一个鸡肋的位置,我认为其主要原因在SOC受制于国内体制.政策.相关日志标准.应用环境.传统认识的制约,从而它在国内一开始就是以产品的方式出现.缺少了MSS的辅助SOC就像是要求汽车驾驶员去驾驶维护飞机,这也是国内SOC一直无法用起来的主要原因. 而以SOC为基础的MSS(可管理安全服务)一直无法发展状大的原因有二. 欧美国家对M

转:c++里关于cerr,clog,cout三者的区别

c++里关于cerr,clog,cout三者的区别: cerr(无缓冲标准错误)-----没有缓冲,发送给它的内容立即被输出 clog(缓冲标准错误)--------有缓冲,缓冲区满时输出 cout-------------------------标准输出 三个都是ostream类定义的输出流对象, cout是在终端显示器输出,cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲区是否漫了,都立即输出流中所有数据,然后插入一个换行符. cerr流对

x64、x86_64、x64三者的区别

x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32” x84_64是x86 CPU开始迈向64位的时候,有2选择:1.向下兼容x86.2.完全重新设计指令集,不兼容x86.AMD抢跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同.而Intel选择了设计一种不兼容x86的