
- AJAX 教程
- AJAX - 首頁
- AJAX - 什麼是 AJAX?
- AJAX - 歷史
- AJAX - 動態網站與靜態網站
- AJAX - 技術
- AJAX - 操作
- AJAX - XMLHttpRequest
- AJAX - 傳送請求
- AJAX - 請求型別
- AJAX - 處理響應
- AJAX - 處理二進位制資料
- AJAX - 提交表單
- AJAX - 檔案上傳
- AJAX - FormData 物件
- AJAX - 傳送 POST 請求
- AJAX - 傳送 PUT 請求
- AJAX - 傳送 JSON 資料
- AJAX - 傳送資料物件
- AJAX - 監控進度
- AJAX - 狀態碼
- AJAX - 應用
- AJAX - 瀏覽器相容性
- AJAX - 示例
- AJAX - 瀏覽器支援
- AJAX - XMLHttpRequest
- AJAX - 資料庫操作
- AJAX - 安全性
- AJAX - 問題
- Fetch API 基礎
- Fetch API - 基礎
- Fetch API 與 XMLHttpRequest
- Fetch API - 瀏覽器相容性
- Fetch API - 頭部資訊
- Fetch API - 請求
- Fetch API - 響應
- Fetch API - 主體資料
- Fetch API - 憑據
- Fetch API - 傳送 GET 請求
- Fetch API - 傳送 POST 請求
- Fetch API - 傳送 PUT 請求
- Fetch API - 傳送 JSON 資料
- Fetch API - 傳送資料物件
- Fetch API - 自定義請求物件
- Fetch API - 上傳檔案
- Fetch API - 處理二進位制資料
- Fetch API - 狀態碼
- Stream API 基礎
- Stream API - 基礎
- Stream API - 可讀流
- Stream API - 可寫流
- Stream API - 變換流
- Stream API - 請求物件
- Stream API - 響應主體
- Stream API - 錯誤處理
- AJAX 有用資源
- AJAX - 快速指南
- AJAX - 有用資源
- AJAX - 討論
Fetch API - 自定義請求物件
在 Fetch API 中,我們也可以藉助 Request 介面的 Request() 建構函式建立一個自定義的 Request 物件。Request 介面為我們提供了對 HTTP 請求的更多控制和靈活性。它提供了各種選項,例如 URL、方法、主體、頭部等,這些選項有助於我們建立自定義的 HTTP 請求。在建立自定義請求物件之前,我們首先了解 Request() 建構函式,使用它可以建立 Request 物件。
Request() 建構函式
要建立請求物件,我們可以使用 Request() 建構函式以及 new 關鍵字。此建構函式包含一個必填引數,即資源的 URL,另一個引數是可選的。
語法
const newRequest = New Request(resourceURL) Or const newRequest = New Request(resourceURL, optional)
Request() 建構函式具有以下引數:
resourceURL − 它表示我們想要獲取的資源。它可以是資源的 URL 或 Request 物件。
Options − 它是一個物件,用於提供我們想要應用於請求的自定義設定,選項包括:
method − 它表示請求方法,例如 GET、POST、PUT 和 DELETE。
headers − 用於向請求新增標頭。
body − 用於向請求新增資料。GET 或 HEAD 方法不使用它。
mode − 它表示要用於請求的模式。此引數的值可以是 cors、same-origin、no-cors 或 navigate。預設情況下,mode 引數的值為 cors。
credentials − 它表示要用於請求的憑據。此引數的預設值為 same-origin,但您也可以根據需要使用 omit、same-origin 或 include 等值。
cache − 它表示您想要用於請求的快取模式。
redirect − 用於重定向模式。此引數的值可以是:follow、error 或 manual。預設情況下,此引數設定為 follow 值。
referrer − 它表示一個字串,指定請求的推薦來源。此引數的可能值為 client、URL 或 no-referrer。此引數的預設值與客戶端有關。
referrerPolicy − 用於指定推薦來源策略。
integrity − 用於表示給定請求的子資源完整性值。
keepalive − 它包含一個布林值,用於確定是否為多個請求/響應建立持久連線。
signal − 它包含一個 AbortSignal 物件,用於與請求通訊或中止請求。
priority − 用於指定請求相對於其他請求的優先順序。此引數可以具有以下值之一:
high − 如果我們想將當前 fetch 請求的優先順序設定為高於其他請求。
low − 如果我們想將當前 fetch 請求的優先順序設定為低於其他請求。
auto − 自動查詢當前 fetch 請求相對於其他請求的優先順序。
自定義請求物件
要建立自定義請求物件,我們需要遵循以下步驟:
步驟 1 − 自定義請求選項
optional ={ method: "POST", headers: {"Content-Type": "application/json"}, body = { Name: "Tom", Age: 23} };
步驟 2 − 使用 Request() 建構函式建立自定義請求物件。
const newRequest = new Request(resourceURL, optional
步驟 3 − 使用 fetch() 函式獲取請求物件。
fetch(newRequest) .then(response =>{ // Handling the response }).catch(err => { // Handle error })
示例
在下面的程式中,我們建立一個指令碼,使用自定義 Request 物件傳送資料。為此,我們使用 Request() 建構函式建立一個自定義請求物件,該建構函式有兩個引數:URL(資源 URL)和可選引數。可選引數包含請求的自定義設定,它們是:
method − 在這裡我們使用 POST 方法,表示我們正在向伺服器傳送資料。
body − 包含我們想要傳送的資料。
headers − 它表示資料是 JSON 資料。
現在,我們將請求物件傳遞給 fetch() 函式以傳送請求,處理伺服器返回的響應,並在發生錯誤時進行處理。
<!DOCTYPE html> <html> <body> <script> // Customize setting of the request const optional = { // Setting POST request method: "POST", // Add body which contains data body: JSON.stringify({ id: 311, title: "Tom like Oranges", age: 37 }), // Setting header headers:{"Content-type": "application/json; charset=UTF-8"} }; // Creating request object const newRequest = new Request("https://jsonplaceholder.typicode.com/todos", optional); fetch(newRequest) // Handling response .then(response => response.json()) .then(returnData => { console.log("Data Sent Successfully"); // Display output document.getElementById("sendData").innerHTML = JSON.stringify(returnData); }) // Handling error .catch(err=>{ console.error("We get an error:", err); }); </script> <h2>Fetch API Example</h2> <div> <!-- Displaying retrieved data--> <p id="sendData"></p> </div> </body> </html>
輸出

結論
這就是我們如何藉助 Request 介面建立自定義請求物件的方法。此介面提供了各種屬性和方法,可以根據我們的需要修改請求主體。在下一篇文章中,我們將學習如何使用 Fetch API 上傳檔案。