WorkerGlobalScope:fetch() 方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

WorkerGlobalScope 接口的 fetch() 方法用于发起获取资源的请求,它会返回一个会在请求响应后兑现的 promise。

该 promise 会兑现一个表示请求响应的 Response 对象。

当请求失败(例如,因为请求 URL 的格式错误或网络错误)时,fetch() 的 promise 才会被拒绝。fetch() 的 promise 不会因为服务器响应表示错误的 HTTP 状态码(404504,等)而被拒绝。因此,then() 处理器必须检查 Response.ok 和/或 Response.status 属性。

fetch() 方法由内容安全策略connect-src 指令(而不是它查询的资源的指令)控制。

备注: fetch() 方法的参数与 Request() 构造函数是一样的。

语法

js
fetch(resource)
fetch(resource, options)

参数

resource

定义你想要获取的资源。可以是:

  • 一个字符串或任何其他具有字符串化器的对象(包括 URL 对象),提供你想要获取的资源的 URL。URL 可以是相对于基础 URL 的,基础 URL 是窗口上下文中文档的 baseURI 或者 worker 上下文中的 WorkerGlobalScope.location
  • 一个 Request 对象。
options 可选

一个包含你想要应用到请求上的任何自定义设置的 RequestInit 对象。

返回值

一个 Promise,会兑现 Response 对象。

异常

AbortError DOMException

请求被 AbortControllerabort() 方法调用所终止。

NotAllowedError DOMException

如果 Topics API 的使用被 browsing-topics 权限策略明确禁止,且 fetch() 请求中包含 browsingTopics: true,则会抛出此异常。

TypeError

当获取操作无法执行时抛出的错误。请参阅 Window.fetch() 的异常,以了解可能导致此错误的原因。

示例

参见 fetch() 以获取示例。

规范

Specification
Fetch Standard
# fetch-method

浏览器兼容性

BCD tables only load in the browser

参见