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.
* Some parts of this feature may have varying levels of support.
メモ: この機能はウェブワーカー内で利用可能です。
mode
は Request
インターフェイスの読み取り専用プロパティで、リクエストのモード(cors
、no-cors
、same-origin
、navigate
など)を保持します。これは、オリジン間リクエストに対して有効なレスポンスができるか、またレスポンスのプロパティが読み取り可能かどうかを判定するために使用されます。
特定のモードでのリクエストを構築するには、必要な値を RequestInit.mode
オプションにとして Request.Request()
コンストラクターに渡します。
特定のモード、特に no-cors
を設定すると、使用できるリクエストメソッドやヘッダーに制限がかかり、 JavaScript がレスポンスヘッダーや本体にアクセスできなくなることに注意してください。詳細は RequestInit.mode
のドキュメントを参照してください。
値
以下の値のいずれかです。
same-origin
-
このモードを設定してほかのオリジンにリクエストをした場合、結果はエラーになります。リクエストが常に同一オリジンに行われることを保証するために使用できます。
no-cors
-
オリジン間リクエストの CORS を無効にします。レスポンスは不透明となり、ヘッダーと本体は JavaScript では利用できません。
cors
-
このリクエストがオリジン間リクエストであれば、オリジン間リソース共有 (CORS) の仕組みを使用します。
-
ナビゲーションに対応しているモードです。
navigate
値は HTML ナビゲーションでのみ使用されることを意図しています。 navigate リクエストは文書内のナビゲーションをするときだけ作成されます。
既定のモード
リクエストは様々な方法で開始されますが、リクエストのモードは、それが開始された具体的な手段によって異なります。
たとえば、 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; // 既定では "cors" を返す
仕様書
Specification |
---|
Fetch # ref-for-dom-request-mode② |
ブラウザーの互換性
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
mode | ||||||||||||||
navigate mode |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support