WorkerGlobalScope: fetch() メソッド

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.

メモ: この機能はウェブワーカー内でのみ利用可能です。

WorkerGlobalScope インターフェイスの fetch() メソッドは、ネットワークからリソースをフェッチする処理を開始し、レスポンスが利用可能になると解決するプロミスを返します。

このプロミスは、リクエストに対するレスポンスを表す Response オブジェクトで解決します。

fetch() のプロミスは、リクエストを送る URL の書式が不正だったり、ネットワークエラーが発生したりなど、リクエストに失敗したときのみ拒否されます。fetch() のプロミスは、サーバーがエラーを表す HTTP ステータスコード (404504 など) で応答した場合は拒否 されません。かわりに、then() のハンドラーは Response.okResponse.status プロパティをチェックしなければなりません。

fetch() メソッドは、取得しようとしているリソースのディレクティブではなく、Content Security Policyconnect-src ディレクティブにより制御されます。

メモ: fetch() メソッドの引数は、Request() コンストラクターの引数と同一です。

構文

js
fetch(resource)
fetch(resource, options)

引数

resource

フェッチしたいリソースを定義します。以下を指定できます。

  • フェッチしたいリソースの URL を表す文字列または文字列化子を持つその他のオブジェクト (URL オブジェクトなど)。この URL には、ベース URL (ウィンドウコンテキストでは文書の baseURI、ワーカーコンテキストでは WorkerGlobalScope.location) からの相対 URL も使用できます。
  • Request オブジェクト
options 省略可

リクエストに適用したいカスタム設定をすべて格納した RequestInit オブジェクトです。

返値

Response オブジェクトで解決する Promise です。

例外

AbortError DOMException

リクエストは AbortControllerabort() メソッドの呼び出しにより中止されました。

NotAllowedError DOMException

Topics API の使用が browsing-topics 機能ポリシーにより明示的に禁止されているとき、fetch() によるリクエストが browsingTopics: true を指定して行われると投げられます。

TypeError

フェッチ操作を行えなかったときのエラーです。このエラーが起こりうる理由の一覧は、Window.fetch() の例外を参照してください。

例は fetch() を参照してください。

仕様書

Specification
Fetch
# fetch-method

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
fetch
Authorization header removed from cross-origin redirects
Support for blob: and data:
Send ReadableStream in body
Experimental
init.attributionReporting parameter
Experimental
init.browsingTopics parameter
ExperimentalNon-standard
init.duplex parameter
Experimental
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.

関連情報