CORSヘッダービルダー

許可オリジン、メソッド、ヘッダー、認証情報を設定し、リアルタイムでヘッダー出力を取得します。

このツールについて

CORSヘッダービルダーは、仕様を暗記せずに正しいAccess-Control-* HTTPレスポンスヘッダーを 生成できる無料のブラウザベースツールです。Cross-Origin Resource Sharing(CORS)は、 ブラウザが異なるドメイン間で安全にリクエストを送信するための仕組みです。 CORSヘッダーの設定ミスは、フロントエンドで最もよく遭遇するエラーの一つであり、 適切なツールがあれば最も防ぎやすいものでもあります。

このビルダーでは、すべてのCORS関連ヘッダーをビジュアルフォームで設定できます: Access-Control-Allow-Origin(ワイルドカード、特定オリジンリスト、正規表現パターン)、 Access-Control-Allow-MethodsAccess-Control-Allow-HeadersAccess-Control-Expose-HeadersAccess-Control-Max-AgeAccess-Control-Allow-Credentials。オプションを切り替えるとリアルタイムで 出力が更新されるため、サーバーが送信すべき内容を正確に確認できます。 credentials: trueとワイルドカードオリジンの組み合わせなど、 よくある間違いについても警告を表示します。

出力は5つの形式で利用可能です:生のHTTPヘッダー、Nginxのadd_headerディレクティブ、 Apacheの.htaccessルール、Express.jsのcorsミドルウェアオプション、 Next.jsのnext.config.jsヘッダー。CORSヘッダーと併せてContent Security Policyを 設定する場合は、CSPヘッダージェネレーターをお試しください。 サーバーが送信するすべてのレスポンスヘッダーの詳細については、 HTTPヘッダーアナライザーで解析・説明が可能です。 Nginxのサーバーブロック全体を記述する場合は、 Nginx設定ジェネレーターでリバースプロキシ、SSL、 キャッシュディレクティブもカバーしています。

内蔵のプリフライトシミュレーションでは、ブラウザが送信するOPTIONSリクエストと 期待されるレスポンスを表示し、デプロイ前に設定を検証できます。

すべての処理はブラウザ内で完結します。内部APIのURLや本番ドメインを含め、 データがサーバーに送信されることはありません。

使い方

  1. ドロップダウンからオリジンモードを選択します — ワイルドカード(*)、特定オリジン、または正規表現パターン。
  2. 特定オリジンを選択した場合は、許可するオリジン(例:https://app.example.com)を入力してEnterキーを押すか**+**をクリックしてリストに追加します。
  3. APIがサポートするHTTPメソッドをメソッドボタン(GET、POST、PUT等)をクリックして切り替えます。
  4. 共通ヘッダーグリッドから許可リクエストヘッダーを選択し、下のテキスト入力にカスタムヘッダーを追加します。
  5. 必要に応じて公開ヘッダーを入力し、プリフライトキャッシュのMax-Ageを設定し、APIがCookieや認証ヘッダーを使用する場合はCredentialsを切り替えます。
  6. 出力形式(生ヘッダー、Nginx、Apache、Express.js、Next.js)を選択し、生成された設定を確認します。
  7. CopyをクリックするかCtrl+Shift+Cを押して出力をクリップボードにコピーします。プリフライトシミュレーションを表示でOPTIONSリクエスト/レスポンスのペアを確認できます。

人気のCORSヘッダー設定例

すべてのCORSヘッダー設定例を見る →

よくある質問

CORSとは何ですか?なぜ必要ですか?

CORS(Cross-Origin Resource Sharing)は、サーバーがAccess-Control-*レスポンスヘッダーで明示的に許可しない限り、異なるドメインへのリクエストをブロックするブラウザのセキュリティメカニズムです。正しいヘッダーがないと、異なるオリジンからのfetchやXMLHttpRequestの呼び出しはブラウザコンソールでCORSエラーとなります。

ワイルドカード(*)オリジンと認証情報を併用できますか?

いいえ。CORS仕様では、Access-Control-Allow-Credentialsがtrueの場合、Access-Control-Allow-Originヘッダーはワイルドカードではなく、リクエスト元の正確なオリジンをエコーする必要があります。ブラウザは*と認証情報の組み合わせではレスポンスを暗黙的に拒否します。このツールはこの設定について警告を表示します。

プリフライトリクエストとは何ですか?

プリフライトリクエストは、リクエストが非シンプルメソッド(PUT、DELETEなど)を使用したり、カスタムヘッダーを送信したり、application/x-www-form-urlencoded、multipart/form-data、text/plain以外のContent-Typeを使用する場合に、ブラウザが実際のリクエスト前に自動的に送信するOPTIONSリクエストです。

Access-Control-Max-Ageはどのように機能しますか?

Access-Control-Max-Ageは、ブラウザがプリフライトレスポンスをキャッシュできる秒数を指定します。この期間中、ブラウザは同一のクロスオリジンリクエストに対するOPTIONSリクエストをスキップし、レイテンシを削減します。安定したAPIでは86400(24時間)が一般的です。

Vary: Originヘッダーは何のためですか?

Access-Control-Allow-Originが*ではなく特定のオリジンを返す場合、中間キャッシュがあるオリジン向けのレスポンスを別のオリジンに配信する可能性があります。Vary: Originを追加すると、キャッシュがOriginリクエストヘッダーをキーとして使用し、この不一致を防ぎます。

データは安全ですか?

はい。すべてのヘッダー生成はJavaScriptを使用してブラウザ内で完全に実行されます。オリジンURLやAPIパスを含め、データがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。

どの出力形式を使用すべきですか?

サーバーやフレームワークに合った形式を選択してください。手動設定やデバッグには生ヘッダー、nginx.confやsites-availableにはNginx、.htaccessにはApache、corsパッケージを使用するNode.jsバックエンドにはExpress.js、next.config.jsのheaders()設定にはNext.jsを使用します。

関連ツール