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 状态码(404
、504
,等)而被拒绝。因此,then()
处理器必须检查 Response.ok
和/或 Response.status
属性。
fetch()
方法由内容安全策略的 connect-src
指令(而不是它查询的资源的指令)控制。
备注: fetch()
方法的参数与 Request()
构造函数是一样的。
语法
fetch(resource)
fetch(resource, options)
参数
resource
-
定义你想要获取的资源。可以是:
- 一个字符串或任何其他具有字符串化器的对象(包括
URL
对象),提供你想要获取的资源的 URL。URL 可以是相对于基础 URL 的,基础 URL 是窗口上下文中文档的baseURI
或者 worker 上下文中的WorkerGlobalScope.location
。 - 一个
Request
对象。
- 一个字符串或任何其他具有字符串化器的对象(包括
options
可选-
一个包含你想要应用到请求上的任何自定义设置的
RequestInit
对象。
返回值
异常
AbortError
DOMException
-
请求被
AbortController
的abort()
方法调用所终止。 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