ホーム > Laravel > LaravelのCorsで特定のオリジンを許可する方法
Laravel

LaravelのCorsで特定のオリジンを許可する方法

いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。

⇨ Laravel 記事の目次はこちら

Laravel の Cors で特定のオリジンを許可する方法についてまとめました。

Laravel を、API で運用する場合、フロントで作成したものをホストするオリジンを許可しないと、

Access to fetch at 'https://127:0.0.1:8000/api/user' from origin 'http://127.0.0.1:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

このようなエラーが出てしまいます。

それを解決するような、内容になっています。

動作環境
Laravel6
Laravel8

6と8で少し違います。

結論

Laravel6 では次のようなコマンドでパッケージを入れます。

Laravel8 は不要です。元から入っているので。

コマンド

composer require fruitcake/laravel-cors
php artisan vendor:publish --tag="cors"

app/Http/Kernel.php

protected $middleware = [
  \Fruitcake\Cors\HandleCors::class,
    // ...
];

1行を追加する。

ここまで Laravel6 のみ。以下 Laravel8 も同様。

config/cors.php

特定のオリジンを許可するためには、このファイルの origin 項目を修正します。

初期設定だと「*」になっています。つまり、全て許可になっています。

'allowed_origins' => ['https://****.com'],

このように修正しました。今回はフロントで稼働しているオリジンを許可します。

config ファイルを修正したので、

php artisan config:cache
または、php artisan config:clear

します。

以上で設定は終わりです。

まとめ

以上です。

エラー文と Laravel から解決できる記事があれば良いと思って作りました。

誰かの助けになれば幸いです。

苦情・感想の DM は Twitter からお願いします。

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する