Fetch和ajax之间的区别
fetch
- Fetch API是基于Promise设计的
- Fetch内置了对JSON数据的解析支持,我们只需要调用response.json()方法,可以直接获得返回的JSON数据。
- 语法简洁,更加语义化
- 原生支持率不高,可以用polyfill兼容IE8+浏览器
- ajax是理用XMLHttpRequest对象来请求数据的,而fetch是window的一个方法
fetch请求默认是不带cookie的,需要设置 fetch(url, {credentials: 'include'})
服务器返回400,500错误码时不会reject,只有网络错误导致不能完成时,才会reject。
ajax
- 设计粗糙,不关注分离原则
- 基于事件的异步模型,不够友好
- 可使用abort()终止请求,可获取请求进度