Fetch API

Baseline 广泛可用 *

此特性已得到良好确立,可跨多种设备和浏览器版本使用。自 2017 年 3 月起,所有浏览器均支持此特性。

* 此特性的某些部分可能存在不同级别的支持。

注意:此功能在 Web Workers 中可用。

Fetch API 提供了一个用于获取资源(包括跨网络获取)的接口。它是 XMLHttpRequest 的更强大、更灵活的替代品。

概念与用法

Fetch API 使用 RequestResponse 对象(以及其他与网络请求相关的对象),以及 CORS 和 HTTP Origin 标头语义等相关概念。

要发出请求并获取资源,请使用 fetch() 方法。它是在 WindowWorker 上下文中都存在的全局方法。这使得它几乎可以在任何你可能想要获取资源的上下文中可用。

fetch() 方法接受一个必需参数,即你要获取的资源的路径。它返回一个 Promise,该 Promise 会解析为对该请求的 Response —— 一旦服务器以标头响应 —— 即使服务器响应是 HTTP 错误状态。你也可以选择将一个 init 选项对象作为第二个参数传递(参见 Request)。

一旦检索到 Response,就有许多方法可用于定义正文内容是什么以及如何处理它。

你可以直接使用 Request()Response() 构造函数来创建请求和响应,但这并不常见。相反,它们更有可能作为其他 API 操作的结果而被创建(例如,来自 service worker 的 FetchEvent.respondWith())。

使用 Fetch 中了解更多关于使用 Fetch API 功能的信息。

接口

Window.fetch()WorkerGlobalScope.fetch()

用于获取资源的 fetch() 方法。

标头

表示响应/请求标头,允许你查询它们并根据结果采取不同的操作。

Request

表示资源请求。

Response

表示对请求的响应。

规范

规范
Fetch
# fetch-method

浏览器兼容性

另见