重要: 从Firefox 52开始,此mixin中定义的方法已移至WindowOrWorkerGlobalScope mixin,而其他浏览器也将如此。 查看该页面以获取最新的详细信息。
当发生网络错误时,fetch()的promise对象会返回一个TypeError错误,尽管这会引起权限问题或者类似的问题。如果要进行一次成功的fetch()请求,你需要对promise对象进行精确解析,之后要保证Response.ok 属性的值为true。这里要说明的是http状态为404的请求不视为网络错误。
GlobalFetch是基于 Content Security Policy connect-src 指令控制, 而不是由资源来源来管理控制的.
Properties
None.
Methods
GlobalFetch.fetch()- 开启一个获取源资源的进程.
Examples
我们提供了一个 简单的fetch示例 (运行这个实例) 我们使用一个简单的 fetch 方法去抓去一张图片并将其显示在 <img> 标签中. 你会从这个示例中注意到当我们对图片发起请求, 会需要使用 Body.blob (Response implements body) 将返回结果指定一个正确的 MIME 类型.
var myImage = document.querySelector('.my-image');
fetch('flowers.jpg').then(function(response) {
return response.blob();
}).then(function(response) {
var objectURL = URL.createObjectURL(response);
myImage.src = objectURL;
});
Specifications
| Specification | Status | Comment |
|---|---|---|
| Fetch GlobalFetch |
Living Standard | Initial definition |
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | 42.0 | 39 (39) 34[1] |
未实现 | 29 28[1] |
未实现 |
| Streaming response body | 43.0 | ? | ? | ? | ? |
| Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|---|
| Basic support | 未实现 | 42.0 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 42.0 |
| Streaming response body | 未实现 | 43.0 | ? | ? | ? | ? | ? | 43.0 |
[1] This API is implemented behind a preference.