From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- files/zh-tw/web/api/fetch_api/index.html | 84 ++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 files/zh-tw/web/api/fetch_api/index.html (limited to 'files/zh-tw/web/api/fetch_api/index.html') diff --git a/files/zh-tw/web/api/fetch_api/index.html b/files/zh-tw/web/api/fetch_api/index.html new file mode 100644 index 0000000000..2cd6f23d22 --- /dev/null +++ b/files/zh-tw/web/api/fetch_api/index.html @@ -0,0 +1,84 @@ +--- +title: Fetch API +slug: Web/API/Fetch_API +translation_of: Web/API/Fetch_API +--- +
{{DefaultAPISidebar("Fetch API")}}
+ +
Fetch API 提供了一個能獲取包含跨網路資源在的資源介面。它有點像我們所熟悉的 {{domxref("XMLHttpRequest")}} ,但這個新的 API 提供了更強更彈性的功能。
+ +

概念與應用

+ +

Fetch 提供了 {{domxref("Request")}} 與 {{domxref("Response")}} 物件,還有其他牽涉網路請求的通用定義。這能讓他們在需要的時候被使用到,不管是 service worker、Cache API、還是其他處理或更動請求回應的相類事物、或是任何需要產生有序化產生回應的用例(use case)。

+ +

它也提供了諸如 CORS 與 HTTP origin 標頭語意的分散定義,能取代分散的定義。

+ +

要發動請求並取得資源的話,請使用 {{domxref("GlobalFetch.fetch")}} 方法。他實作了數種介面,並指定了 {{domxref("Window")}} 與 {{domxref("WorkerGlobalScope")}},使它可以在任何想獲取資源的環境中使用。

+ +

fetch() 方法有一個強制性的參數,就是要取得資源的網址。該方法會回傳一個不論請求成敗,都會 resolve 的 promise {{domxref("Response","回應")}}。你也能選擇性地使用第二個稱為 init 的物件參數(請參見 {{domxref("Request")}})。

+ +

當 {{domxref("Response")}} 檢索後,在請求體裡面會定義一些請求體為何,還有要如何處理的方法(請參見 {{domxref("Body")}})。

+ +

你也可以直接用 {{domxref("Request.Request","Request()")}} 與 {{domxref("Response.Response","Response()")}} 建構子來建立請求與回應,不過你不太可能直接使用他,反而更可能是以其他 API 行動的結果為形式存在。(例如來自 service worker 的 {{domxref("FetchEvent.respondWith")}})

+ +
+

注意:你可以在使用 Fetch深入理解 Fetch,並在Fetch 的基本概念文章內理解概念。

+
+ +

中斷一次 Fetch

+ +

各家瀏覽器已經開始加入 {{DOMxRef("AbortController")}} 與 {{DOMxRef("AbortSignal")}} 介面(也就是 Abort API)的實驗性支援,讓 Fetch 和 XHR 這類的操作在完成前可以被中斷。詳情請參閱相關介面的文件。

+ +

Fetch 介面

+ +
+
{{DOMxRef("WindowOrWorkerGlobalScope.fetch()")}}
+
用於取得資源的 fetch() 方法。
+
{{domxref("Headers")}}
+
代表請求/回應標頭,讓你能 query 並針對結果不同,採取不同行動。
+
{{domxref("Request")}}
+
代表資源請求。
+
{{domxref("Response")}}
+
代表資源請求的回應。
+
+ +

Fetch mixin

+ +
+
{{domxref("Body")}}
+
提供請求/回應訊息體的相關方法,能宣告內容的類別為何,以及該如何處理。
+
+ +

規範

+ + + + + + + + + + + + + + +
規範狀態註解
{{SpecName('Fetch')}}{{Spec2('Fetch')}}初始定義
+ +

瀏覽器相容性

+ + + +

{{Compat("api.WindowOrWorkerGlobalScope.fetch")}}

+ +

參見

+ + -- cgit v1.2.3-54-g00ecf