1. 面向开发者的 Web 技术
  2. Web API
  3. Fetch API

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Fetch API

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 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 的跨源子框架共享配额

规范

规范
Fetch
# fetch-method
Fetch
# deferred-fetch

浏览器兼容性

api.fetch

api.Window.fetchLater

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /