Fetch API 簡介
Fetch API 是一種現代的原生 JavaScript API,可讓您以簡單且靈活的方式發出 HTTP 請求。它為 XMLHttpRequest 等舊技術提供了更簡單、更乾淨的替代方案。 Fetch 是基於 Promise 的,這意味著它可以很好地與現代 JavaScript 功能(例如 async/await 和 .then() 連結)配合使用。
Fetch API 提供了一種易於理解的與 RESTful API 互動的方式,可以處理簡單和複雜的請求。它在現代瀏覽器中得到廣泛支持,是 Web 開發的常用工具。
Fetch API 的主要特性:
- 基於 Promise:基於 Promise 構建,提供一種簡單直觀的方式來管理非同步程式碼。
- 支援所有 HTTP 方法:GET、POST、PUT、DELETE、PATCH 等
- 沒有回調地獄:感謝 Promises,它避免了嵌套回調。
- 串流支援:Fetch 支援流,這使得它適合高效處理大量資料。
- 改進的錯誤處理:與 XMLHttpRequest 不同,Fetch API 不會拒絕 HTTP 錯誤狀態(例如 404 或 500)。你必須手動處理這些。
安裝
Fetch API 內建於現代網頁瀏覽器中,這表示如果您在瀏覽器環境中工作,則無需安裝任何內容。它本身可用並可用於發出 HTTP 請求。
但是,如果您在 Node.js 環境中工作(原生不支援 fetch),則可以安裝諸如 node-fetch 之類的 polyfill。
1.使用 npm (適用於 Node.js 環境):
如果您在 Node.js 環境中工作並且需要使用 Fetch,您可以安裝 node-fetch:
npm install node-fetch
然後,將其匯入到您的專案中:
const fetch = require('node-fetch');
使用取得 API
Fetch API 提供了一個全域 fetch() 函數,您可以使用它來發出 HTTP 請求。此函數傳回一個 Promise,該 Promise 解析為表示對請求的回應的 Response 物件。
文法
fetch(url, [options])
參數
-
網址:
- 型別:字串
- 描述:請求傳送到的 URL。這可以是完整 URL 或基於請求中定義的基本 URL 的相對 URL。
-
選項 (可選):
- 類型:對象
-
描述:用於修改請求的選用設定物件。一些常見的選項包括:
- 方法:HTTP 方法(例如 GET、POST、PUT、DELETE)。
- headers:要包含在請求中的自訂標頭(例如,內容類型、授權)。
- body:請求正文(僅適用於 POST 或 PUT 等方法)。
- mode:控制跨域請求。 (例如,「cors」、「no-cors」、「同源」)。
- cache:指定請求如何與快取互動(例如,「no-store」、「reload」)。
- 憑證:控制 cookie 和身份驗證(例如,「同源」、「包含」)。
基本獲取請求 (GET)
使用 Fetch API 的基本 GET 要求非常簡單。 fetch() 函數向提供的 URL 發出請求並傳回一個使用 Response 物件解析的 Promise。
範例程式碼:
這是使用 Fetch API 的簡單 GET 請求的範例:
npm install node-fetch
說明:
- fetch() 向給定的 URL 發起請求。
- .then(response => response.json()):透過解析 JSON 資料將 Response 物件轉換為 JavaScript 物件。
- .catch():捕獲並記錄任何錯誤,例如網路錯誤或失敗的請求。
使用 Fetch 發出 POST 請求
Fetch API 也允許您發出 POST 請求。 POST 請求通常用於向伺服器發送數據,例如提交表單或建立新資源。
POST 請求的語法:
const fetch = require('node-fetch');
範例程式碼:
以下是向伺服器發送資料的 POST 請求範例:
fetch(url, [options])
說明:
- method: 'POST':指定這是 POST 請求。
- body: JSON.stringify(postData):將資料轉換為 JSON 字串,然後將其傳送到請求正文中。
- headers:將 Content-Type 標頭設定為 application/json 以指示傳送的資料為 JSON 格式。
處理回應資料
Fetch API 傳回的 Response 物件包含多個用於與回應資料互動的屬性和方法。
回應的關鍵屬性與方法:
- response.json():將回應正文解析為 JSON。
- response.text():將回應正文解析為字串。
- response.blob():將回應解析為二進位大物件(對於處理影像或檔案很有用)。
- response.ok:一個布林值,指示回應狀態碼是否在 200-299 範圍內(成功)。
- response.status:回應的 HTTP 狀態碼(例如,200 表示成功,404 表示未找到)。
- response.headers:伺服器回應請求回傳的標頭。
範例程式碼:
以下是如何處理不同類型的回應資料的範例:
npm install node-fetch
說明:
- response.ok 檢查回應是否成功(狀態碼 200-299)。如果沒有,則會拋出錯誤。
- response.json() 被呼叫以將回應解析為 JavaScript 物件。
處理取得錯誤
與 XMLHttpRequest 不同,Fetch API 不會自動拒絕 HTTP 錯誤狀態(例如 404 或 500)。只有在發生網路故障或請求被阻止時才會拒絕。要處理 404 或 500 等錯誤,您需要檢查 response.ok 屬性。
錯誤處理範例:
以下是如何在 Fetch 中有效處理錯誤的範例:
const fetch = require('node-fetch');
說明:
- response.ok:檢查回應狀態碼是否在 200–299 範圍內(表示成功)。
- 如果請求失敗(例如404或500錯誤),則會拋出錯誤並帶有相應的狀態碼。
結論
Fetch API 是一個強大的現代工具,用於在 JavaScript 中發出 HTTP 請求。它提供了一種乾淨直覺的方式來使用 REST API,而其基於承諾的架構使管理非同步程式碼變得容易。 Fetch 支援所有 HTTP 方法、錯誤處理和回應解析,是 Web 開發人員的必備工具。
無論您是獲取資料、提交表單還是處理身份驗證,Fetch API 都可以提供對 HTTP 請求的靈活性和控制,使其成為現代 Web 應用程式的絕佳選擇。
以上是取得API完整指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版