Fetch请求

Fetch概念:
fetch号称是AJAX的替代品,是在ES6出现的,使用了ES6中的promise对象。Fetch是基于promise设计的。Fetch的代码结构比起ajax简单多了,参数有点像jQuery ajax。
但是,一定记住 fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象。

一个简单的Fetch请求例子:
fetch(url).then(function(response){

  1.res.arrayBuffer()    
  arrayBuffer() 方法会返回一个promise,可以解决一个ArrayBuffer
  2.res.blob()
  blob() 方法将返回一个promise,使用一个Blob解决
  3.res.formData()
  formData() 方法返回一个Promise,它使用一个FormData对象来解决
  4.res.json()
  json() 方法返回解析正文文本为JSON的结果。这可以是任何可以由JSON表示的东西:对象、数组、字符串、数字等等
  5.res.text()
  text() 方法返回一个promise,使用一个USVString解决

})
 
Fetch请求的缺点:
1)fetch只对网络请求报错,对400,500都当做成功的请求,服务器返回 400,500 错误码时并不会 reject,只有网络错误这些导致请求不能完成时,fetch 才会被 reject。 2)fetch默认不会带cookie,需要添加配置项: fetch(url, {credentials: 'include'}) 3)fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费 4)fetch没有办法原生监测请求的进度,而XHR可以
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

转载于:https://www.cnblogs.com/BlogRegisterboby/p/10899426.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值