ajax与fetch的区别?
1、ajax是使用XMLHttpRequest对象发起的,但是用起来很麻烦,所以ES6新规范就有了fetch,fetch发一个请求不用像ajax那样写一大堆代码。
2、使用fetch无法取消一个请求,这是因为fetch基于Promise,而Promise无法做到这一点。
3、在默认情况下,fetch不会接受或者发送cookies
4、 fetch没有办法原生监测请求的进度,而XMLHttpRequest可以
5、fetch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理
6、fetch由于是ES6规范,兼容性上比不上XMLHttpRequest
ajax与axios的区别及优缺点?
区别:
axios是通过Promise实现对ajax技术的一种封装,简单来说就是ajax技术实现了局部数据的刷新,axios实现了对ajax的封装,axios有的ajax都有,ajax有的axios不一定有。
总结一句话就是axios是ajax,ajax不止axios
优缺点:
ajax:
1、本身是针对MVC编程,不符合前端MVVM的浪潮
2、基于原生XHR开发,XHR本身的架构不清晰,已经有了fetch的替代方案
3、ajax不支持浏览器的back按钮
4、安全问题ajax暴露了与服务器交互的细节
5、对搜索引擎的支持比较弱
6、破坏程序的异常机制
7、不容易调试
axios:
1、从node.js创建http请求
2、支持Promise API
3、客户端防止CSRF(网站恶意利用)
4、提供了一些并发请求的接口