Response

Baseline 廣泛可用 *

此特性已得到良好確立,可跨多種裝置和瀏覽器版本使用。自 2017 年 3 月起,所有瀏覽器均支援此特性。

* 此特性的某些部分可能存在不同級別的支援。

注意:此功能在 Web Workers 中可用。

Web API 的 Response 介面代表對請求的響應。

你可以使用 Response() 建構函式建立一個新的 Response 物件,但你更有可能遇到 Response 物件作為另一個 API 操作的結果返回——例如,Service Worker 的 FetchEvent.respondWith,或者簡單的 fetch()

建構函式

Response()

建立一個新的 Response 物件。

例項屬性

Response.body 只讀

包含正文內容的 ReadableStream

Response.bodyUsed 只讀

儲存一個布林值,宣告正文是否已被用於響應。

Response.headers 只讀

與響應關聯的 Headers 物件。

Response.ok 只讀

一個布林值,指示響應是否成功(狀態碼在 200299 之間)。

Response.redirected 只讀

指示響應是否是重定向的結果(即,其 URL 列表包含多個條目)。

Response.status 只讀

響應的狀態碼。(成功時為 200)。

Response.statusText 只讀

與狀態碼對應的狀態訊息。(例如,200OK)。

Response.type 只讀

響應的型別(例如,basiccors)。

Response.url 只讀

響應的 URL。

靜態方法

Response.error()

返回一個與網路錯誤關聯的新 Response 物件。

Response.redirect()

返回一個 URL 不同的新響應。

Response.json()

返回一個用於返回提供的 JSON 編碼資料的新的 Response 物件。

例項方法

Response.arrayBuffer()

返回一個 Promise,該 Promise 解析為響應正文的 ArrayBuffer 表示形式。

Response.blob()

返回一個 Promise,該 Promise 解析為響應正文的 Blob 表示形式。

Response.bytes()

返回一個 Promise,該 Promise 解析為響應正文的 Uint8Array 表示形式。

Response.clone()

建立一個 Response 物件的副本。

Response.formData()

返回一個 Promise,該 Promise 解析為響應正文的 FormData 表示形式。

Response.json()

返回一個 Promise,該 Promise 解析為將響應正文文字解析為 JSON 的結果。

Response.text()

返回一個 Promise,該 Promise 解析為響應正文的文字表示形式。

示例

獲取圖片

在我們 基本的 fetch 示例即時執行示例)中,我們使用一個簡單的 fetch() 呼叫來獲取圖片並將其顯示在 <img> 元素中。fetch() 呼叫返回一個 Promise,該 Promise 解析為與資源獲取操作關聯的 Response 物件。

您會注意到,因為我們請求的是圖片,所以我們需要執行 Response.blob 以使響應具有正確的 MIME 型別。

js
const image = document.querySelector(".my-image");
fetch("flowers.jpg")
  .then((response) => response.blob())
  .then((blob) => {
    const objectURL = URL.createObjectURL(blob);
    image.src = objectURL;
  });

您還可以使用 Response() 建構函式來建立自己的自定義 Response 物件

js
const response = new Response();

PHP 呼叫

在這裡,我們呼叫一個生成 JSON 字串的 PHP 程式檔案,並將結果顯示為 JSON 值。

js
// Function to fetch JSON using PHP
const getJSON = async () => {
  // Generate the Response object
  const response = await fetch("getJSON.php");
  if (response.ok) {
    // Get JSON value from the response body
    return response.json();
  }
  throw new Error("*** PHP file not found");
};

// Call the function and output value or error message to console
getJSON()
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

規範

規範
Fetch
# response-class

瀏覽器相容性

另見