Laravel
LaravelのCorsで特定のオリジンを許可する方法
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
オススメ本
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 からお願いします。
人気記事