学习--fetch与axios比较

fetch与axios定位认识

fetch是浏览器提供的api,axios是社区封装的一个组件。

fetch:1语法简单,更加语义化。

2:基于标准Promise实现,支持async/await

3:更加底层,提供的API丰富(request,response)

4:脱离了XHR,是ES规范里新的实现方式。

是由whatwg 组提出,现在已经w3c规范。

问题:是浏览器级别原生支持的API,可以认为是一个原生的XHR,所以使用起来不是那么舒服。需要进行封装。

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可以

axios  支持进度检测

axios是一个基于Promise用于浏览器和nodejs的HTTP客户端,本质上也是对原生XHR的封装,只不过它是Promise实现版本,符合最新的ES规范。

1:从浏览器中创建XMLHttpRequest

2:支持PromiseApi

3:客户端支持防止CSRF

4:提供了一些并发请求的接口(重要,方便了很多操作)axios.all=>Promise.all

5:支持浏览器和node.js发请求,前后端发请求

6:拦截请求和响应  (拦截器 )

7:转换请求和响应数据

8:取消请求

9:自动转换JSON数据。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值