W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Fetch API 提供了一個(gè)獲取資源的接口(包括通過網(wǎng)絡(luò))。任何使用過 XMLHttpRequest 的人都會(huì)覺得很熟悉,但Fetch API 提供了一個(gè)更強(qiáng)大和更靈活的功能集。
Fetch提供了Request和Response對(duì)象(以及涉及網(wǎng)絡(luò)請(qǐng)求的其他內(nèi)容)的通用的定義。這將允許他們?cè)趯?lái)需要的地方使用,無(wú)論是service worker,Cache API 和其他類似的事情,處理或修改請(qǐng)求和響應(yīng),或任何類型的用例,可能需要您產(chǎn)生自己的響應(yīng)編程。
它還為CORS和HTTP源頭語(yǔ)義等相關(guān)概念提供了定義,取代了其他地方的單獨(dú)定義。
為了提出請(qǐng)求并獲取資源,請(qǐng)使用該GlobalFetch.fetch方法。它在多個(gè)接口實(shí)現(xiàn)的,特別是Window和WorkerGlobalScope。這使得它幾乎可以在任何你想要獲取資源的上下文中使用。
該 fetch() 方法采用一個(gè)強(qiáng)制參數(shù),即要獲取的資源的路徑。它返回一個(gè)promise,它解決了對(duì)該請(qǐng)求的Response,無(wú)論是否成功。您也可以選擇傳遞一個(gè)init選項(xiàng)對(duì)象作為第二個(gè)參數(shù)。
一旦檢索到Response,就有很多方法可以定義正文內(nèi)容以及應(yīng)該如何處理。
您可以使用Request()和Response()構(gòu)造函數(shù)直接創(chuàng)建請(qǐng)求和響應(yīng),但是您不太可能直接執(zhí)行此操作。相反,這些更有可能被創(chuàng)建為其他API操作的結(jié)果(例如,來(lái)自service worker的FetchEvent.respondWith)。
注意:了解有關(guān)使用 fetch 中的Fetch API 功能的更多信息,并在 Fetch 基本概念中學(xué)習(xí)概念。
瀏覽器已經(jīng)開始為 AbortController 和 AbortSignal 接口(又名Abort API)添加實(shí)驗(yàn)支持,允許像 Fetch 和 XHR 操作,如果他們尚未完成將被中止。
fetch()
方法。規(guī)范 | 狀態(tài) | 注釋 |
---|---|---|
Fetch | Living Standard | Initial definition |
Feature | Chrome | Edge | Firefox(Gecko) | IE | Opera | Safari(WebKit) |
---|---|---|---|---|---|---|
基本的支持 | 支持:42 | 支持:14 | 支持:39、34 [1] 、52[2] | 不支持 | 支持:29 、28 [1] | 支持:10.1 |
ReadableStream 響應(yīng) | 支持:43 | 支持:14 | 不支持[3] | 不支持 | ? | 不支持 |
Feature | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
基本的支持 | 支持:42 | 支持:42 | 支持 | 支持 | 不支持 | 不支持 | 支持:10.1 |
ReadableStream 響應(yīng) | 支持:43 | 支持:43 | 支持 | 不支持[3] | 不支持 | ? | 不支持 |
表格中的角標(biāo)解釋:
[1]這個(gè)API是在首選項(xiàng)后面實(shí)現(xiàn)的。
[2]在Firefox 52之前,get()只返回指定頭文件中的第一個(gè)值,getAll()返回所有的值。從52開始,get()現(xiàn)在返回所有值,并getAll()已被刪除。
[3]可讀流目前在Firefox中啟用,但隱藏在dom.streams.enabled和javascript.options.streamsprefs 后面。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: