MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

Fetch API にはネットワーク通信を含む、リソース取得のためのインタフェースが定義されています。XMLHttpRequest と似たものではありますが、より強力で柔軟な操作が可能です。

概念と利用方法

Fetch では RequestResponse が一般的な形で定義されています。またネットワークリクエストに関連する様々なものも定義されています。これらは service worker や Cache API といったリクエストとレスポンスを扱う API や、独自のレスポンスを発生させる場面でも利用できるようになるでしょう。

また CORS や HTTP オリジンヘッダの振る舞いといった関連した概念についても定義されています。この定義は、現行の分散している個別の定義を置き換えるものです。

リソースを取得するためのリクエストは、GlobalFetch.fetch メソッドを呼ぶことで作成できます。このメソッドは WindowWorkerGlobalScope といったインタフェースによって実装されています。その結果、リソース取得を必要とする様々な場面での利用が可能です。

fetch() を呼び出す場合、取得するリソースのパスを必ず引数で指定しなくてはなりません。呼び出し後、fetch() Promise オブジェクトを返します。リクエストが成功であっても不成功であっても、Promise は解決され、リクエストに対するレスポンスを表す Response オブジェクトが取得できます。fetch() の第 2 引数はオプショナルで、リクエストの初期化に使用されるオブジェクトを指定します。詳細は Request をご覧ください。

Response が解決されたあとは、レスポンスに含まれるコンテンツと、その処理方法を定義するためのメソッドが利用できるようになります。詳細は Body で解説されています。

Request() および Response() を利用することで、リクエストとレスポンスを直接作成できます。ただしこれらのオブジェクトは、FetchEvent.respondWith のような他の API 呼び出しの結果として取得されるべきもので、直接作成しないほうが良いでしょう。

付記: Fetch API の詳しい利用方法は  Using Fetch を参照してください。また Fetch basic concepts では、Fetch API の基本概念が解説されています。

Fetch インタフェース

GlobalFetch
リソース取得ために fetch() メソッドが利用する定数が定義されています。
Headers
リクエストとレスポンスのヘッダを表現しています。ヘッダ情報への問い合わせや、結果による振る舞いの選択が可能です。
Request
リソースへのリクエストの表現です。
Response
リクエストに対するレスポンスの表現です。

Fetch ミックスイン

Body
レスポンスとリクエストの本体に関係するメソッドが定義されています。これらを利用することで、コンテントタイプ自身と、コンテントタイプごとの処理を定めることが可能になります。

仕様

仕様 状況 コメント
Fetch 現行の標準 Initial definition

ブラウザ互換性

機能 Chrome Edge Firefox (Gecko) IE Opera Safari (WebKit)
基本機能 42.0
 

14

39 (39)
34 behind pref
未サポート

29
28 behind pref

未サポート WebKit bug 151937
Streaming response body 43.0

14

?

?

?

?

Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support 未サポート 42.0 未サポート 未サポート 未サポート 未サポート 未サポート 42.0
Streaming respone body 未サポート 43.0

?

?

?

?

?

43.0

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: mdmss37, chikoski
 最終更新者: mdmss37,