フェッチ API
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.
メモ: この機能はウェブワーカー内で利用可能です。
フェッチ API は(ネットワーク越しの通信を含む)リソース取得のためのインターフェイスを提供しています。これは XMLHttpRequest
をより強力かつ柔軟に置き換えたものです。
概念と使用方法
フェッチ API は Request
と Response
オブジェクト(他にもネットワークリクエストに関係すること)と、CORS や HTTP の Origin ヘッダーの意味づけのような関連の概念を使用します。
リクエストを行い、リソースを読み取るには、fetch()
メソッドを使用します。これは Window
と Worker
コンテキストの両方でグローバルメソッドです。このため、リソースを取得するほとんどのコンテキストで利用できます。
fetch()
メソッドは必須の引数を 1 つ取り、取得したいリソースのパスを指定します。これは Promise
を返します。これはサーバーがヘッダーで返答するとすぐに、サーバーレスポンスが HTTP エラーステータスであったとしても、 Response
に解決します。第 2 引数は任意で、 init
オプションオブジェクトを渡すことができます(Request
を参照してください)。
Response
を受け取ると、レスポンスに含まれるコンテンツ本体と、その処理方法を定義するための多数のメソッドが利用できるようになります。
Request()
および Response()
を利用することで、リクエストとレスポンスを直接作成できます。ただしこれらのオブジェクトは、FetchEvent.respondWith()
のような他の API 呼び出しの結果として取得されるべきもので、直接作成しないほうが良いでしょう。
フェッチ API の詳しい利用方法は フェッチの使用を参照してください。
Fetch インターフェイス
仕様書
Specification |
---|
Fetch # fetch-method |
ブラウザーの互換性
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fetch | ||||||||||||||
Authorization header removed from cross-origin redirects | ||||||||||||||
Support for blob: and data: | ||||||||||||||
Send ReadableStream in body | ||||||||||||||
init.attributionReporting parameter | ||||||||||||||
init.browsingTopics parameter | ||||||||||||||
init.duplex parameter | ||||||||||||||
init.keepalive parameter | ||||||||||||||
init.priority parameter | ||||||||||||||
init.referrerPolicy parameter | ||||||||||||||
init.signal parameter |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Non-standard. Check cross-browser support before using.
- See implementation notes.
- Has more compatibility info.