開始學習Fetch API

2018-01-20 17:57 更新

Fetch API 提供了一個獲取資源的接口(包括通過網絡)。任何使用過 XMLHttpRequest 的人都會覺得很熟悉,但Fetch API 提供了一個更強大和更靈活的功能集。

Fetch API 概念和用法

Fetch提供了Request和Response對象(以及涉及網絡請求的其他內容)的通用的定義。這將允許他們在將來需要的地方使用,無論是service worker,Cache API 和其他類似的事情,處理或修改請求和響應,或任何類型的用例,可能需要您產生自己的響應編程。

它還為CORS和HTTP源頭語義等相關概念提供了定義,取代了其他地方的單獨定義。

為了提出請求并獲取資源,請使用該GlobalFetch.fetch方法。它在多個接口實現的,特別是Window和WorkerGlobalScope。這使得它幾乎可以在任何你想要獲取資源的上下文中使用。

該 fetch() 方法采用一個強制參數,即要獲取的資源的路徑。它返回一個promise,它解決了對該請求的Response,無論是否成功。您也可以選擇傳遞一個init選項對象作為第二個參數。

一旦檢索到Response,就有很多方法可以定義正文內容以及應該如何處理。

您可以使用Request()和Response()構造函數直接創(chuàng)建請求和響應,但是您不太可能直接執(zhí)行此操作。相反,這些更有可能被創(chuàng)建為其他API操作的結果(例如,來自service worker的FetchEvent.respondWith)。

注意:了解有關使用 fetch 中的Fetch API 功能的更多信息,并在 Fetch 基本概念中學習概念。

中止 Fetch

瀏覽器已經開始為 AbortController 和 AbortSignal 接口(又名Abort API)添加實驗支持,允許像 Fetch 和 XHR 操作,如果他們尚未完成將被中止。

Fetch 接口

GlobalFetch
包含用于獲取資源的fetch()方法。
Headers
表示響應/請求標題,允許您查詢它們并根據結果采取不同的操作。
Request
代表資源請求。
Response
表示對請求的響應。

Fetch mixin

Body
提供與響應/請求主體相關的方法,允許您聲明其內容類型以及應該如何處理。

規(guī)范

規(guī)范狀態(tài)注釋
Fetch
Living Standard
Initial definition

瀏覽器兼容性

  • 電腦端
FeatureChrome
Edge
Firefox(Gecko)
IEOpera
Safari(WebKit)
基本的支持支持:42支持:14支持:39、34 [1] 、52[2]不支持支持:29 、28 [1]支持:10.1
ReadableStream 響應支持:43支持:14不支持[3]不支持?不支持
  • 移動端
FeatureAndroid WebviewChrome for AndroidEdgeFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
基本的支持
支持:42支持:42支持支持不支持不支持支持:10.1
ReadableStream 響應支持:43支持:43支持不支持[3]不支持?不支持

表格中的角標解釋:

[1]這個API是在首選項后面實現的。

[2]在Firefox 52之前,get()只返回指定頭文件中的第一個值,getAll()返回所有的值。從52開始,get()現在返回所有值,并getAll()已被刪除。

[3]可讀流目前在Firefox中啟用,但隱藏在dom.streams.enabled和javascript.options.streamsprefs 后面。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號