ホームページ >PHPフレームワーク >Laravel >Laravelでクロスドメインを適切に設定する方法
Laravel は、ルーティング、ミドルウェア、ORM などを含む多くの強力な機能を提供する人気のある PHP Web アプリケーション フレームワークです。ただし、Laravel を使用して Web アプリケーションを構築すると、クロスドメインの問題が発生することがよくあります。クロスドメインは通常、異なるドメイン名からのリソースへのアクセスを制限するブラウザーの同一生成元ポリシーによって発生します。したがって、異なるドメインにリクエストを行う場合は、クロスドメインの設定が必要になります。
以下では、Laravel でクロスドメインを正しく設定する方法を紹介します。
Laravel に関連するサードパーティ ソフトウェア パッケージ「Barryvdh-cors」は、開発者がクロスドメインの問題を解決するのに役立ちます。 「Barry vd. Heuvel」というオランダ人によって開発されたこのミドルウェアを使用すると、Laravel がサーバー側で CORS (Cross-Origin Resource Sharing) 構成を実行できるようになります。
このミドルウェアを使用するには、まずインストールする必要があります。次のコマンドを実行します:
composer require barryvdh/laravel-cors
ミドルウェアをインストールした後、それをアプリケーションに登録する必要があります。 config/app.php ファイルを開き、プロバイダー配列に次のコードを追加します。
'providers' => [ // ... Barryvdh\Cors\ServiceProvider::class, ];
次に、エイリアス配列に次のコードを追加します。
'aliases' => [ // ... 'Cors' => Barryvdh\Cors\Facade::class, ];
ミドルウェアを登録した後、アプリケーションで設定する必要があります。 config/cors.php ファイルを開くと、自動的に生成されますが、そうでない場合は手動でファイルを作成してください。
このファイルでは、クロスドメイン アクセスを許可するドメイン名と、AJAX を介した共有を許可する HTTP リクエスト メソッドを構成できます。設定例を次に示します:
return [ 'supports_credentials' => false, 'allowed_origins' => ['*'], 'allowed_headers' => ['Content-Type', 'Authorization'], 'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], 'exposed_headers' => [], 'max_age' => 0, ];
この例では、すべてのオリジンからのクロスドメイン アクセスを許可しますが、特定のリクエスト メソッドとリクエスト ヘッダーのみを許可します。さらにオプションをカスタマイズする必要がある場合は、[このドキュメント](https://github.com/barryvdh/laravel-cors) を確認してください。
「Barryvdh-cors」ミドルウェアをインストールして構成すると、ルートまたはコントローラーで使用できます。
ルーティングで使用:
Route::get('/data', function () { return ['message' => 'Hello World']; })->middleware('cors'); // Use cors middleware
コントローラーで使用:
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Barryvdh\Cors\HandleCors; class ExampleController extends Controller { /** * Use Cors middleware to handle the request */ public function index(Request $request) { $middleware = new HandleCors(); $response = $middleware->handle($request, function($request) { return ['message' => 'Hello World']; }); return $response; } }
「Barryvdh-cors」ミドルウェアを通じて、クロスドメインを実現します。 Laravel アプリケーションの問題は簡単に解決できます。このミドルウェアは、ルーティングやコントローラーだけでなく、グローバル設定やグループ設定などもサポートしており、クロスドメインポリシーをより自由かつ正確に制御することができます。
以上がLaravelでクロスドメインを適切に設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。