カテゴリ: Laravel 更新日: 2026/02/07

LaravelでCORS設定を完全解説!初心者でもわかる他ドメインアクセス許可

LaravelでCORS設定を行う方法(他ドメインからのアクセス許可)
LaravelでCORS設定を行う方法(他ドメインからのアクセス許可)

先生と生徒の会話形式で理解しよう

生徒

「Laravelで作ったAPIに、別のサイトからアクセスしようとしたらエラーが出ました。どうしてですか?」

先生

「それはCORSという仕組みが関係しています。Webブラウザが安全のために通信を制限しているんです。」

生徒

「CORSって何ですか?設定しないとAPIは使えないんですか?」

先生

「設定すれば大丈夫です。Laravelでは決められた場所を編集するだけで対応できますよ。」

1. CORSとは何かを超やさしく理解しよう

1. CORSとは何かを超やさしく理解しよう
1. CORSとは何かを超やさしく理解しよう

CORSとはCross-Origin Resource Sharingの略で、日本語では「異なる場所からのアクセスを許可する仕組み」という意味です。 ここでいう「場所」とは、WebサイトのURLに含まれるドメインのことです。

例えば、https://example.comで動いている画面から、 https://api.sample.comのAPIを呼び出す場合、ドメインが違うため、そのままではブラウザが通信を止めます。 これは不正な通信や情報漏えいを防ぐための安全対策です。

CORSは「このドメインからのアクセスなら許可してよいですよ」とサーバー側が伝えるためのルールだと考えると分かりやすいです。 建物で例えると、受付で「この人は入っていいです」と許可証を出すイメージです。

2. LaravelでCORS設定が必要になる場面

2. LaravelでCORS設定が必要になる場面
2. LaravelでCORS設定が必要になる場面

LaravelでAPI開発をしていると、フロント画面とAPIを別々に作ることがよくあります。 例えば、画面はHTMLやJavaScriptで作り、APIはLaravelで作るといった形です。

このとき、画面とAPIのURLが違うと、ブラウザは「別のドメインからの通信」と判断します。 その結果、CORSエラーが発生し、APIが正しく動かなくなります。

つまり、LaravelでAPIを外部から使いたい場合、CORS設定はほぼ必須の作業になります。 初心者の方が最初につまずきやすいポイントでもあります。

3. Laravel標準のCORS設定ファイルを確認しよう

3. Laravel標準のCORS設定ファイルを確認しよう
3. Laravel標準のCORS設定ファイルを確認しよう

Laravelでは、最初からCORS設定用のファイルが用意されています。 それがconfig/cors.phpです。 このファイルを編集することで、他ドメインからのアクセス許可を管理できます。

設定ファイルとは、アプリ全体の動きを決めるためのメモ帳のようなものです。 難しい処理を書く場所ではなく、「どう動いてほしいか」を指定する場所だと考えてください。

4. cors.phpの基本設定を見てみよう

4. cors.phpの基本設定を見てみよう
4. cors.phpの基本設定を見てみよう

return [
    'paths' => ['api/*'],
    'allowed_methods' => ['*'],
    'allowed_origins' => ['*'],
    'allowed_headers' => ['*'],
    'supports_credentials' => false,
];

pathsは「どのURLにCORSを適用するか」を決めます。 api/*は、API用のURLすべてという意味です。

allowed_originsは「どこからのアクセスを許可するか」を指定します。 *は「すべて許可」という意味で、学習中や検証用によく使われます。

allowed_methodsallowed_headersも、 「どんな通信方法や情報を許可するか」を決める項目です。 最初は深く考えず、すべて許可する設定でも問題ありません。

5. CORSはミドルウェアとして動いている

5. CORSはミドルウェアとして動いている
5. CORSはミドルウェアとして動いている

LaravelのCORSはミドルウェアとして動作しています。 ミドルウェアとは、リクエストが処理される前後にチェックを行う仕組みです。

例えるなら、学校の校門に立っている先生のような存在です。 中に入る前に「この人は入っていいか」を確認する役割があります。

CORSのミドルウェアは、アクセス元を確認し、 許可されていればAPIの処理に進ませるという働きをしています。

6. CORSエラーが出たときの考え方

6. CORSエラーが出たときの考え方
6. CORSエラーが出たときの考え方

CORSエラーが出た場合、Laravelの処理自体が失敗しているわけではありません。 多くの場合、ブラウザが安全のために通信を止めています。

そのため、エラーが出たら「CORS設定で許可されているか」を確認することが大切です。 特にallowed_originsの設定は、原因になりやすいポイントです。

LaravelでAPI開発を行う際は、 「CORSは通信の入り口でチェックされる仕組み」という考え方を持つと理解しやすくなります。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New2
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New3
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New4
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.2
Java&Spring記事人気No2
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.3
Java&Spring記事人気No3
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.4
Java&Spring記事人気No4
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.6
Java&Spring記事人気No6
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方