Laravelでクロスオリジン(CORS)に対応メモ
Laravelでクロスオリジン(CORS)に対応する為のメモです。
LaravelはCORS用のライブラリがあるのでそちらを利用します。
ライブラリをインストールします。
$ composer require barryvdh/laravel-cors
Laravelのバージョンが5.5以下の場合はconfig/app.php
のproviders
を変更します。
Barryvdh\Cors\ServiceProvider::class,
Laravelのバージョンは以下のコマンドで確認できます。
php artisan --version
要件に合わせて、app/Http/Kernel.php
を変更します。
全てのリクエストに対応する場合は、以下を変更します。
protected $middleware = [
// ...
\Barryvdh\Cors\HandleCors::class,
];
APIのみ対応する場合、以下を変更します。
protected $middlewareGroups = [
'api' => [
// ...
\Barryvdh\Cors\HandleCors::class,
],
];
最後に設定ファイルを作成します。
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
/config/cors.php
が作成されます。
細かな設定をする場合はこちらを変更していきます。
<?php
return [
/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value.
|
*/
//クッキーの送信およびBasic認証の許可
'supportsCredentials' => false,
//許可するドメイン
'allowedOrigins' => ['*'],
//許可するドメインを正規表現で指定
'allowedOriginsPatterns' => [],
//許可するヘッダー
'allowedHeaders' => ['*'],
//許可するメソッド
'allowedMethods' => ['*'],
//レスポンスに含めるカスタム HTTP ヘッダ
'exposedHeaders' => [],
//プリフライトリクエストの結果をキャッシュできる期間
'maxAge' => 0,
];