Fetch API

Baseline 廣泛可用 *

此特性已得到良好確立,可跨多種裝置和瀏覽器版本使用。自 2017 年 3 月起,所有瀏覽器均支援此特性。

* 此特性的某些部分可能存在不同級別的支援。

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

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 中瞭解更多關於使用 Fetch API 功能的資訊。

介面

Window.fetch()WorkerGlobalScope.fetch()

用於獲取資源的 fetch() 方法。

標頭

表示響應/請求標頭,允許你查詢它們並根據結果採取不同的操作。

Request

表示資源請求。

Response

表示對請求的響應。

規範

規範
Fetch
# fetch-method

瀏覽器相容性

另見