Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. Web API
  3. RequestInit

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

RequestInit

RequestInitフェッチ API の辞書で、フェッチリクエストを構成するのに使用する一連のオプションを表します。

RequestInit オブジェクトはRequest() コンストラクターに渡したり、直接fetch() 関数呼び出しに渡したりすることができます。

また、RequestRequestInit で作成し、そのRequestfetch() に別のRequestInit と一緒に渡すこともできます。この場合、両方の場所で同じオプションが設定されていれば、直接fetch() に渡された値が使用されます。

インスタンスプロパティ

attributionReporting省略可Experimental

このリクエストのレスポンスに JavaScript ベースの帰属ソースまたは帰属トリガーを登録できるようにしたいことを示します。attributionReporting は以下のプロパティを格納するオブジェクトです。

eventSourceEligible

論理値。true に設定すると、このリクエストのレスポンスは帰属ソースの登録の対象となります。false に設定すると、対象になりません。

triggerEligible

論理値。true に設定すると、このリクエストのレスポンスは帰属トリガーの登録の対象となります。false に設定すると、対象になりません。

詳しくはAttribution Reporting API を参照してください。

body省略可

サーバーに送信する内容を含むリクエスト本体です。例えばPOST またはPUT リクエストで使用されます。 以下のいずれかの型のインスタンスとして指定します。

詳しくは本体の設定を参照してください。

browsingTopics省略可Experimental

論理値で、現在のユーザーのために選択されたトピックを、 リクエストに関連付けられたSec-Browsing-Topics ヘッダーで送ることを指定します。

詳しくはUsing the Topics API を参照してください。

cache省略可

リクエストに使用したいキャッシュモードを指定します。以下の値のいずれかを指定します。

default

ブラウザーはリクエストに一致するレスポンスを HTTP キャッシュから探します。

  • 一致したものがあり新しい場合、それをキャッシュから返します。
  • もし一致するものがあっても古い場合は、ブラウザーはリモートサーバーに条件付きリクエストを行います。サーバーがリソースが変更されていないことを示した場合、そのリソースはキャッシュから返されます。そうでなければ、リソースはサーバーからダウンロードされ、キャッシュが更新されます。
  • 一致するものがない場合、ブラウザーは通常のリクエストを行い、ダウンロードされたリソースでキャッシュを更新します。
no-store

ブラウザーは最初にキャッシュを見ずにリモートサーバーからリソースを取得し、ダウンロードしたリソースでキャッシュを更新しません。

reload

ブラウザーは最初のキャッシュを見ずにリモートサーバーからリソースを取得しますが、ダウンロードしたリソースでキャッシュを更新します。

no-cache

ブラウザーは、リクエストに一致するレスポンスがないか、HTTP キャッシュを探します。

  • 一致するものがあれば、新しいか古いかを問わず、ブラウザーはリモートサーバーに条件付きリクエストを行います。サーバーがリソースが変更されていないことを示した場合、そのリソースはキャッシュから返されます。そうでなければ、リソースはサーバーからダウンロードされ、キャッシュが更新されます。
  • 一致するものがない場合、ブラウザーは通常のリクエストを行い、ダウンロードされたリソースでキャッシュを更新します。
force-cache

ブラウザーは、リクエストに一致するレスポンスを HTTP キャッシュから探します。

  • 一致するものがあれば、新しいか古いかを問わず、それをキャッシュから返します。
  • 一致するものがない場合、ブラウザーは通常のリクエストを行い、ダウンロードされたリソースでキャッシュを更新します。
only-if-cached

ブラウザーは、リクエストに一致するレスポンスを HTTP キャッシュから探します。Experimental

"only-if-cached" モードはリクエストのmode"same-origin" である場合にのみ使用することができます。リクエストのredirect プロパティが"follow" で、かつ"same-origin" モードに違反していなければ、キャッシュされたリダイレクトに従います。

credentials省略可

ブラウザーがリクエストと共に資格情報を送るかどうか、またSet-Cookie レスポンスヘッダーを尊重するかどうかを制御します。資格情報とはクッキー、TLS クライアント証明書、またはユーザー名とパスワードを格納した認証ヘッダーです。このオプションには以下の任意の値が指定できます。

omit

リクエストで資格情報を送信したり、レスポンスに資格情報を含めたりしません。

same-origin

同一オリジンのリクエストに対してのみ資格情報を送信し、含めます。

include

オリジン間リクエストであっても、常に資格情報を含めます。

オリジン間のリクエストに資格情報を含めると、CSRF 攻撃を受けやすくなる可能性があります。そのため、credentialsinclude に設定されていても、Access-Control-Allow-Credentials をレスポンスに含めることで、サーバーも資格情報を含めることに同意する必要があります。さらに、この状況ではサーバーはAccess-Control-Allow-Origin レスポンスヘッダーでクライアントのオリジンのサーバーを明示的に指定しなければなりません(つまり、* は許可されません)。

詳しくは資格情報を含めるを参照してください。

既定値はsame-origin です。

headers省略可

リクエストに追加したいヘッダーで、Headers オブジェクト、またはキーがヘッダー名で値がヘッダー値であるオブジェクトリテラルが入ります。

多くのヘッダーはブラウザーによって自動的に設定され、スクリプトによって設定することはできません。これらは禁止リクエストヘッダーと呼ばれています。

mode オプションがno-cors に設定されている場合、CORS セーフリストリクエストヘッダーのみを設定することができます。

詳しくはヘッダーの設定を参照してください。

integrity省略可

このリクエストのサブリソース完全性の値を保持します。

これは<script> 要素にintegrity 属性を設定したときと同じように、リソースをフェッチしたときに調べられます。ブラウザーはフェッチされたリソースのhash を指定されたアルゴリズムで計算し、その結果が指定された値と一致しない場合、ネットワークエラーでフェッチリクエストを拒否します。

このオプションは<hash-algo>-<hash-source> という書式です。

  • <hash-algo>sha256sha384sha512 のいずれかです。
  • <hash-source> は指定したハッシュアルゴリズムでリソースをハッシュした結果のBase64 エンコーディングです。

既定値は空文字列です。

keepalive省略可

論理値。true に設定すると、リクエストが完全に完了する前にリクエストを開始したページが読み込まれなくなった場合でも、関連付けられたリクエストが中止されなくなります。これにより、ユーザーがページから離れたり閉じたりした場合でも、fetch() リクエストによりセッションの終わりに分析データを送信することができます。

これは、同じ目的でNavigator.sendBeacon() を使用するよりもいくつかの利点があります。例えば、POST 以外の HTTP メソッドを使用することができます。また、リクエストプロパティをカスタマイズしたり、フェッチのプロミス (Promise) の履行を通じて、サーバーレスポンスにアクセスしたりすることができます。サービスワーカーでも利用可能です。

keepalive リクエストの本体サイズは 64 キロバイトに制限されています。

既定値はfalse です。

method省略可

リクエストメソッドです。

既定値はGET です。

mode省略可

オリジン間リクエストの動作を設定します。以下の値のいずれかです。

same-origin

オリジン間リクエストを許可しません。same-origin リクエストが異なるオリジンに送信された場合、ネットワークエラーが発生します。

cors

このリクエストがオリジン間リクエストであった場合、オリジン間リソース共有 (CORS) の仕組みを使用します。CORS セーフリストレスポンスヘッダーのみがレスポンスに公開されます。

no-cors

オリジン間リクエストで CORS を無効にします。このオプションには、次の制限があります。

  • メソッドはHEADGETPOST のいずれかである必要があります。
  • ヘッダーはCORS セーフリストリクエストヘッダー のみですが、さらなる制約としてRange ヘッダーも許可されません。これはサービスワーカーが追加したヘッダーにも適用されます。
  • レスポンスは不透明となり、ヘッダーと本体は JavaScript から利用できず、ステータスコードは常に0 になります。

no-cors の主な適用例はサービスワーカーです。no-cors リクエストに対するレスポンスは JavaScript で読み取ることができませんが、サービスワーカーでキャッシュし、横取りしたフェッチリクエストに対するレスポンスとして使用することができます。この状況ではリクエストが成功したかどうかがわからないため、キャッシュされたレスポンスをネットワークから更新できるキャッシュ戦略を採用すべきです(例えば、キャッシュ更新付きのキャッシュ優先など)。

navigate

HTML ナビゲーションでのみ使用します。navigate リクエストは文書間を移動するときにのみ作成されます。

詳しくは、オリジン間リクエストを行うを参照してください。

既定値はcors です。

priority省略可

同じ種類の他のリクエストに対する、この読み込みリクエストの優先度を指定します。以下の文字列のいずれかでなければなりません。

high

同じ種類の他のリクエストに対する優先度の高いフェッチリクエスト。

low

同じ種類の他のリクエストと相対した、優先度の低いフェッチリクエスト。

auto

フェッチの優先度をユーザーが設定しません。これは値を設定しない場合や無効な値が設定された場合に使用されます。

既定値はauto です。

redirect省略可

サーバーがリダイレクトステータスでレスポンスした場合のブラウザー動作を決定します。以下の値のいずれかです。

follow

自動的にリダイレクトを行います。

error

リダイレクトステータスを返ると、ネットワークエラーでプロミスを拒否します。

manual

ほとんどすべてのフィールドがフィルターされたレスポンスを返し、サービスワーカーがそのレスポンスを格納して、後で再生できるようにします。

既定値はfollow です。

referrer省略可

リクエストのReferer ヘッダーに使用する値を指定する文字列。以下のいずれかを指定します。

同じオリジンの相対 URL または絶対 URL

参照するヘッダーReferer を指定された値に設定します。相対 URL はリクエストを行ったページの URL に対して相対的に解決されます。

空文字列

Referer ヘッダーを除外します。

about:client

ヘッダーReferer にはリクエストのコンテキスト(例えばリクエストを行ったページの URL)の既定値を設定します。

既定値はabout:client です。

referrerPolicy省略可

文字列で、Referer ヘッダーのポリシーを設定します。このオプションの構文と意味づけはReferrer-Policy ヘッダーの場合とまったく同じです。

signal省略可

AbortSignal です。このオプションを設定すると、対応するAbortControllerabort() を呼び出すことでリクエストを中止することができます。

fetch() にオプションを渡す

この例では、methodbodyheaders オプションをfetch() メソッド呼び出しに直接渡しています。

js
async function post() {  const response = await fetch("https://example.org/post", {    method: "POST",    body: JSON.stringify({ username: "example" }),    headers: {      "Content-Type": "application/json",    },  });  console.log(response.status);}

Request() コンストラクターにオプションを渡す

この例ではRequest を作成し、そのコンストラクターに同じオプション設定をしてfetch() にリクエストを渡します。

js
async function post() {  const request = new Request("https://example.org/post", {    method: "POST",    body: JSON.stringify({ username: "example" }),    headers: {      "Content-Type": "application/json",    },  });  const response = await fetch(request);  console.log(response.status);}

Request()fetch() の両方にオプションを渡す

この例ではRequest を作成し、methodheadersbody オプションをコンストラクターに渡します。そして、bodyreferrer オプションとともにfetch() にリクエストを渡します。

js
async function post() {  const request = new Request("https://example.org/post", {    method: "POST",    headers: {      "Content-Type": "application/json",    },    body: JSON.stringify({ username: "example1" }),  });  const response = await fetch(request, {    body: JSON.stringify({ username: "example2" }),    referrer: "",  });  console.log(response.status);}

この場合、リクエストは以下のオプションと共に送信されます。

  • method: "POST"
  • headers: {"Content-Type": "application/json"}
  • body: '{"username":"example2"}'
  • referrer: ""

仕様書

Specification
Fetch
# requestinit

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp