Loading... # ajax、axios、fetch三者之间 ## 1.jQuery ajax 优缺点: - 本身是针对MVC的编程,不符合现在前端MVVM的浪潮 - 基于原生的XHR开发,XHR本身的架构不清晰,已经有了fetch的替代方案 - JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常的不合理(采取个性化打包的方案又不能享受CDN服务) ```js $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () {}, error: function () {} }); ``` ## 2.axios ```js searchMusic(){ axios.get("https://autumnfish.cn/search?key="+this.query).then( function(response){ console.log(response); }, function(err){} ) } ``` 优缺点: - 从 node.js 创建 http 请求 - 支持 Promise API - 客户端支持防止CSRF - **提供了一些并发请求的接口**(重要,方便了很多的操作) ## 3.fetch ```js try { let response = await fetch(url); let data = response.json(); console.log(data); } catch(e) { console.log("Oops, error", e); } ``` 优缺点: 符合关注分离,没有将输入、输出和用事件来跟踪的状态混杂在一个对象里 更好更方便的写法 更加底层,提供的API丰富(request, response) 脱离了XHR,是ES规范里新的实现方式 1)fetchtch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理 2)fetch默认不会带cookie,需要添加配置项 3)fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了量的浪费 4)fetch没有办法原生监测请求的进度,而XHR可以<hr class="content-copyright" style="margin-top:50px" /><blockquote class="content-copyright" style="font-style:normal"><p class="content-copyright">版权属于:乐心湖's Blog</p><p class="content-copyright">本文链接:<a class="content-copyright" href="https://www.xn2001.com/archives/268.html">https://www.xn2001.com/archives/268.html</a></p><p class="content-copyright">声明:博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh" target="_blank" rel="nofollow noopener noopener" one-link-mark="yes">CC BY-SA 4.0 协议</a> ,转载请注明出处!</p></blockquote> 腾讯云社区邀请各位技术博主加入,福利多多噢! Last modification:June 5th, 2020 at 12:08 pm © 允许规范转载 Support 如果觉得我的文章对你有用,请随意赞赏 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat
One comment
我一般都是使用axios