Fetch被称为下一代Ajax技术,采用Promise方式来处理数据。是一种简洁明了的API,比XMLHttpRequest更加简单易用。
页面中需要向服务器请求数据时,基本上都会使用Ajax来实现。(推荐学习:web前端视频教程)
Ajax的本质是使用XMLHttpRequest对象来请求数据,而XMLHttpRequest对象是通过事件的模式来实现返回数据的处理。
与XMLHttpRequest类似,Fetch允许你发出AJAX请求。
区别在于Fetch API使用Promise方式,Promise是已经正式发布的ES6的内容之一,因此是一种简洁明了的API,比XMLHttpRequest更加简单易用。
浏览器支持
Fetch 目前还不是 W3C 规范,因此原生支持率并不高。
幸运的是,引入下面这些 polyfill 后可以完美支持 IE8+ :
1.由于 IE8 是 ES3,需要引入 ES5 的 polyfill: es5-shim, es5-sham
2.引入 Promise 的 polyfill: es6-promise3.引入 fetch 探测库:fetch-detector
4.引入 fetch 的 polyfill: fetch-ie8
5.可选:如果你还使用了 jsonp,引入 fetch-jsonp
6.可选:开启 Babel 的 runtime 模式,现在就使用 async/await