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

瀏覽器相容性

另見