ホームページ >バックエンド開発 >PHPチュートリアル >Laravel 5.1でカスタムCORSミドルウェアを実装するにはどうすればよいですか?

Laravel 5.1でカスタムCORSミドルウェアを実装するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-22 16:21:09311ブラウズ

How to Implement Custom CORS Middleware in Laravel 5.1?

Laravel 5.1 で CORS を有効にする

Laravel 5.1 で API を開発する場合、リクエストを許可するには Cross-Origin Resource Sharing (CORS) を有効にすることが重要ですさまざまな起源から。さまざまな CORS ライブラリが存在しますが、この記事では、Laravel 5.1 向けに特別に調整されたカスタム ミドルウェア実装に焦点を当てます。

CORS 用ミドルウェア

CORS を有効にするには、次の場所にミドルウェア クラスを作成します。 app/Http/Middleware/CORS.php:

use Closure;

class CORS {
    public function handle($request, Closure $next)
    {
        header("Access-Control-Allow-Origin: *");
        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin'
        ];
        if ($request->getMethod() == "OPTIONS") {
            return Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach ($headers as $key => $value) {
            $response->header($key, $value);
        }
        return $response;
    }
}

ミドルウェアの登録

app/Http/Kernel.php:

にミドルウェアを登録します。
protected $routeMiddleware = [
    'cors' => 'App\Http\Middleware\CORS',
];

ミドルウェア

ルートで CORS ミドルウェアを使用するには、「middleware」 => を追加します。ルート定義への 'cors':

Route::get('example', ['middleware' => 'cors', function () {
    return 'example';
}]);

Laravel ^8.0 Update

Laravel バージョン 8.0 以降では、コントローラーの名前空間をインポートし、次のようなクラス名:

use App\Http\Controllers\ExampleController;

Route::get('example', [ExampleController::class, 'dummy'])->middleware('cors');

これらの手順に従うことで、簡単に有効にすることができますLaravel 5.1 API の CORS により、さまざまなドメインからのリクエストが許可され、安全で柔軟な API 環境が提供されます。

以上がLaravel 5.1でカスタムCORSミドルウェアを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。