Request: mode プロパティ
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
mode
は Request
インターフェイスの読み取り専用プロパティで、リクエストのモード(たとえば、cors
、no-cors
、same-origin
、navigate
、websocket
)を保持します。これは、オリジン間リクエストに対して有効なレスポンスができるか、またレスポンスのプロパティが読み取り可能かどうかを判定するために使用されます。
値
RequestMode
の値です。-
mode に関連する値には、次のものが使用できます。
same-origin
-
このモードを設定してほかのオリジンにリクエストをした場合、結果はエラーになります。リクエストが常に同一オリジンに行われることを保証するために使用できます。
no-cors
-
メソッドが
HEAD
、GET
、POST
以外にならないようにし、ヘッダーが CORS セーフリストリクエストヘッダー以外のものにならないようにします。 サービスワーカーがこれらのリクエストに介入した場合 CORS セーフリストリクエストヘッダー以外のヘッダーを追加したり上書きしたりすることはできません。 さらに、 JavaScript で結果のResponse
のプロパティにアクセスすることはできません。 これは、サービスワーカーがウェブの意味づけに影響を与えないようにし、ドメイン間でデータが漏れることによって生じるセキュリティとプライバシーの問題を防ぐためです。 cors
-
オリジン間リクエストを許可します。たとえば、サードパーティベンダーが提供する様々な API にアクセスできます。これらは、CORS プロトコルに則ることが期待されています。制限されたヘッダーしか
Response
からは見えないようになりますが、本体は読み取り可能です。 -
ナビゲーションに対応しているモードです。
navigate
値は HTML ナビゲーションでのみ使用されることを意図しています。 navigate リクエストは文書内のナビゲーションをするときだけ作成されます。 websocket
-
WebSocket 接続を確立するときだけ使用される特殊なモードです。
既定のモード
リクエストは様々な方法で開始されますが、リクエストのモードは、それが開始された具体的な手段によって異なります。
たとえば、 Request
オブジェクトが Request()
コンストラクターで生成された場合、 mode
の値は cors
に設定されます。
しかし、リクエストが Request()
コンストラクター以外で生成された場合は、ふつう no-cors
がモードとして設定されます。たとえば、マークアップから生成された埋め込みリソースのようなリクエストは、 crossorigin
属性が設定されていない限り、 no-cors
を利用します。そのようなものの例として、 <link>
や <script>
要素(ただしモジュールを除く)、 <img>
、<audio>
、<video>
、<object>
、<embed>
、<iframe>
要素などが存在します。
例
以下のスニペットは、 Request()
コンストラクターを使って(スクリプトと同じディレクトリーにある画像ファイルのために)新しいリクエストを生成してから、リクエストモードを変数に保存しています。
const myRequest = new Request("flowers.jpg");
const myMode = myRequest.mode; // returns "cors" by default
仕様書
Specification |
---|
Fetch Standard # ref-for-dom-request-mode② |
ブラウザーの互換性
BCD tables only load in the browser