Response: type 屬性

Baseline 已廣泛支援

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

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

Response 介面中只讀的 type 屬性包含響應的型別。該型別決定了指令碼是否能夠訪問響應體和響應頭。

一個字串,可以是以下任何值

basic

這適用於以下任何情況

  • 請求是同源的。
  • 請求的 URL 方案是 data:
  • 請求的 modenavigatewebsocket

在此型別下,所有響應頭都暴露,除了 Set-Cookie

cors

請求是跨域的,並且已使用 CORS 成功處理。在此型別下,只暴露 CORS 安全列表響應頭

error

發生了網路錯誤。status 屬性設定為 0bodynull,頭部為空且不可變。

這是由 Response.error() 返回的響應型別。呼叫 fetch() 不會返回此型別的響應,因為如果發生網路錯誤,Promise 會被拒絕。

opaque

對模式設定為 no-cors 的跨域請求的響應。status 屬性設定為 0bodynull,頭部為空且不可變。

opaqueredirect

對重定向選項設定為 manual 的請求的響應,並且該請求已被伺服器重定向。status 屬性設定為 0bodynull,頭部為空且不可變。

示例

一個 basic 響應

以下同源請求將返回一個 basic 響應

js
const response = await fetch("flowers.jpg");

console.log(response.type); // "basic"

一個 CORS 響應

假設 https://example.org 不是請求者所在的域,並且伺服器響應了適當的 CORS 頭部,此請求將返回一個 cors 響應

js
const response = await fetch("https://example.org/flowers.jpg");

console.log(response.type); // "cors"

一個 opaque 響應

以下請求是使用 no-cors 選項發起的,因此它返回一個 opaque 響應

js
const response = await fetch("https://example.org/flowers.jpg", {
  mode: "no-cors",
});

console.log(response.type); // "opaque"
console.log(response.body); // null
console.log(response.status); // 0

一個 error 響應

以下程式碼使用 Response.error() 建立了一個 error 響應

js
const response = Response.error();

console.log(response.type); // "error"
console.log(response.body); // null
console.log(response.status); // 0

規範

規範
Fetch
# dom-response-type

瀏覽器相容性

另見