ホームページ  >  記事  >  PHPフレームワーク  >  クロスドメインlaravelの設定方法(2つの方法)

クロスドメインlaravelの設定方法(2つの方法)

PHPz
PHPzオリジナル
2023-04-08 15:30:023301ブラウズ

フロントエンドとバックエンドが別々のプロジェクトでは、フロントエンドがバックエンド インターフェイスを要求すると、クロスドメインの問題が発生する可能性があります。その中で、典型的なシナリオは、フロントエンド プロジェクトが http://localhost:8080 で実行され、バックエンド プロジェクトが http://localhost:8000 で実行されるというものです。この場合、クロスドメイン設定を行う必要があります。セット。

Laravel では、次の 2 つの方法でクロスドメインを設定できます。

  1. ミドルウェアの方法

最初にミドルウェアを作成します CorsMiddleware:

php artisan make:middleware CorsMiddleware

CorsMiddleware でのクロスドメインの処理:

<?php

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $origin = $request->header('Origin') ?: '*';

        header('Access-Control-Allow-Origin: ' . $origin);
        header('Access-Control-Allow-Headers: Origin, Content-Type, Authorization');
        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');

        return $next($request);
    }
}

The ミドルウェアは、Http/Kernel.php の $middleware 配列に登録されます:

protected $middleware = [
    // ...
    \App\Http\Middleware\CorsMiddleware::class,
];

このとき、Laravel は、応答ヘッダーに Access-Control-Allow-Origin などのクロスドメイン関連の情報を追加します。

  1. Laravel-cors 拡張パッケージ

実際、Laravel コミュニティには、クロスドメインの問題の処理に使用できるオープンソース拡張パッケージがすでに多数あります。たとえば、laravel-cors は、クロスドメインリクエストを設定するためのいくつかの構成項目を提供します。

最初に、拡張機能パッケージをインストールします:

composer require barryvdh/laravel-cors

次に、config/app.php のプロバイダー配列にサービス プロバイダーを登録します:

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
],

最後に、構成ファイルを公開します:

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"

現時点では、config/cors.php でクロスドメイン リクエストを構成できます:

return [

    /*
    |--------------------------------------------------------------------------
    | Laravel CORS Options
    |--------------------------------------------------------------------------
    |
    | The allowed_methods and allowed_headers options are case-insensitive.
    |
    */

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'allowed_methods' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => false,

];

必要に応じて構成します。

Laravel でクロスドメイン設定を行う方法は上記 2 つありますので、自分に合った方を選んでください。

以上がクロスドメインlaravelの設定方法(2つの方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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