WorkerGlobalScope: fetch() 方法

Baseline 广泛可用 *

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

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

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

WorkerGlobalScope 接口的 fetch() 方法开始从网络获取资源的进程,返回一个在响应可用时 fulfilled 的 Promise。

该 Promise 解析为代表您的请求响应的 Response 对象。

fetch() Promise 仅在请求失败时才会 reject,例如,由于 URL 格式错误或网络错误。如果服务器响应的 HTTP 状态码表示错误(404504 等),fetch() Promise 不会 reject。相反,then() 处理程序必须检查 Response.ok 和/或 Response.status 属性。

fetch() 方法受 Content Security Policyconnect-src 指令控制,而不是它正在检索的资源的指令。

注意: fetch() 方法的参数与 Request() 构造函数的参数相同。

语法

js
fetch(resource)
fetch(resource, options)

参数

resource

这定义了您希望获取的资源。这可以是

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

一个 RequestInit 对象,其中包含你希望应用于请求的任何自定义设置。

返回值

一个 Promise,它解析为一个 Response 对象。

异常

AbortError DOMException

由于调用了 AbortControllerabort() 方法而中止了请求。

NotAllowedError DOMException

如果使用 Topics APIbrowsing-topics Permissions Policy 明确禁止,并且使用 browsingTopics: true 发出了 fetch() 请求,则会抛出此错误。

TypeError

fetch 操作无法执行时发生的错误。有关此错误可能发生的原因列表,请参阅 Window.fetch() 异常。

示例

有关示例,请参阅 fetch()

规范

规范
Fetch
# fetch-method

浏览器兼容性

另见