概念和用法
Fetch API 使用 Request 和 Response 对象(以及网络请求涉及的其他内容),还涉及 CORS 和 HTTP Origin 标头语义等相关概念。
要发起请求并获取资源,请使用 fetch() 方法。该方法在 Window 和 Worker 上下文中均为全局方法。这意味着在几乎任何需要获取资源的上下文中,都可以使用它。
fetch() 方法有一个必需参数,即要获取资源的路径。它返回一个 Promise,该 Promise 会在服务器返回头部信息后,立即解析兑现为该请求的 Response 对象——即使服务器的响应是 HTTP 错误状态。你也可以传入一个可选的 init 选项对象作为第二个参数(参见 Request)。
一旦获取到 Response 对象后,就有多种方法可用于定义主体内容以及如何处理该内容。
虽然可以直接使用 Request() 和 Response() 构造函数创建请求和响应对象,但这种做法并不常见。通常,它们会作为其他 API 操作的结果被创建(例如,来自 service worker 的 FetchEvent.respondWith())。
有关使用 Fetch API 功能的更多信息,请参见使用 Fetch。
延迟 Fetch
fetchLater() API 允许开发者请求延迟获取,它可以在指定的时间段之后发送,或者在页面关闭或导航离开时发送。参见使用延迟 Fetch。
接口
Window.fetch()和WorkerGlobalScope.fetch()-
用于获取资源的
fetch()方法。 Window.fetchLater()-
用于发起延迟获取请求。
DeferredRequestInit-
表示可用于配置延迟获取请求的选项集合。
FetchLaterResult-
表示请求延迟获取的结果。
Headers-
表示响应/请求的标头信息,允许你查询这些信息,并根据结果采取不同的操作。
Request-
表示资源请求。
Response-
表示对请求的响应。
HTTP 标头
deferred-fetch-
控制
fetchLater()API 的顶级配额。 deferred-fetch-minimal-
控制
fetchLater()API 的跨源子框架共享配额。
规范
| Specification |
|---|
| Fetch> # fetch-method> |
| Fetch> # deferred-fetch> |