Request: mode 屬性

Baseline 廣泛可用 *

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

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

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

modeRequest 介面的一個只讀屬性,包含請求的模式(例如 corsno-corssame-originnavigate)。這用於確定跨域請求是否會產生有效響應,以及響應的哪些屬性是可讀的。

要構建具有特定模式的請求,請在 Request.Request() 建構函式中將所需值作為 RequestInit.mode 選項傳遞。

請注意,設定特定的模式,尤其是 no-cors,會對可用的請求方法和標頭施加限制,並阻止 JavaScript 訪問響應標頭或正文。有關更多詳細資訊,請參閱 RequestInit.mode 的文件。

以下值之一

same-origin

禁止跨域請求。如果使用此模式向另一個域發出請求,則會導致錯誤。

no-cors

停用跨域請求的 CORS。響應是不透明的,這意味著其標頭和正文對 JavaScript 不可用。

cors

如果請求是跨域的,它將使用 跨域資源共享 (CORS) 機制。

用於支援導航的模式。navigate 值僅用於 HTML 導航。僅在文件之間導航時才建立導航請求。

預設模式

請求可以透過多種方式發起,請求的模式取決於其發起方式。

例如,當使用 Request() 建構函式建立 Request 物件時,該 Requestmode 屬性值設定為 cors

然而,對於除 Request() 建構函式以外的其他方式建立的請求,通常使用 no-cors 作為模式;例如,對於從標記發起的嵌入式資源請求,除非存在 crossorigin 屬性,否則在大多數情況下,請求將使用 no-cors 模式發出——即,對於 <link><script> 元素(模組除外),或者 <img><audio><video><object><embed><iframe> 元素。

示例

在下面的程式碼片段中,我們使用 Request() 建構函式建立一個新請求(用於與指令碼在同一目錄下的影像檔案),然後將請求模式儲存在一個變數中。

js
const myRequest = new Request("flowers.jpg");
const myMode = myRequest.mode; // returns "cors" by default

規範

規範
Fetch
# ref-for-dom-request-mode②

瀏覽器相容性

另見