GlobalFetch

重要: 从Firefox 52开始,此mixin中定义的方法已移至WindowOrWorkerGlobalScope mixin,而其他浏览器也将如此。 查看该页面以获取最新的详细信息。

Fetch API 中的GlobalFetch 接口包含了GlobalFetch.fetch() 方法,它被用于发送请求获取资源。

 

WindowWorkerGlobalScope都实现了GlobalFetch 接口——这意味着你获取的各类资源内容都能够应用这个接口。

当发生网络错误时,fetch()的promise对象会返回一个TypeError错误,尽管这会引起权限问题或者类似的问题。如果要进行一次成功的fetch()请求,你需要对promise对象进行精确解析,之后要保证Response.ok 属性的值为true。这里要说明的是http状态为404的请求不视为网络错误。

GlobalFetch 是基于 Content Security Policy  connect-src 指令控制, 而不是由资源来源来管理控制的.

Notefetch() 方法的参数和 Request() 构造函数相同.

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.

See also

文档标签和贡献者

 此页面的贡献者: Ende93, a1528zhang, Taoja, Sebastianz
 最后编辑者: Ende93,