Heim >PHP-Framework >Laravel >So richten Sie domänenübergreifendes Laravel ein (zwei Methoden)

So richten Sie domänenübergreifendes Laravel ein (zwei Methoden)

PHPz
PHPzOriginal
2023-04-08 15:30:023681Durchsuche

In Projekten mit separatem Front-End und Back-End können domänenübergreifende Probleme auftreten, wenn das Front-End die Back-End-Schnittstelle anfordert. Ein typisches Szenario ist: Das Front-End-Projekt wird unter http://localhost:8080 ausgeführt, und das Back-End-Projekt wird unter http://localhost:8000 ausgeführt. In diesem Fall müssen domänenübergreifende Einstellungen vorgenommen werden Satz.

In Laravel können Sie die folgenden zwei Methoden verwenden, um domänenübergreifend einzurichten.

  1. Middleware-Methode

Erstellen Sie zunächst eine Middleware CorsMiddleware:

php artisan make:middleware CorsMiddleware

Domainübergreifende Handhabung in 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);
    }
}

Die Middleware wird im $middleware-Array in Http/Kernel.php registriert:

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

Zu diesem Zeitpunkt , fügt Laravel domänenübergreifende Informationen wie Access-Control-Allow-Origin im Antwortheader hinzu.

  1. Laravel-cors-Erweiterungspaket

Tatsächlich verfügt die Laravel-Community bereits über viele Open-Source-Erweiterungspakete, die zur Lösung domänenübergreifender Probleme verwendet werden können. Beispielsweise stellt laravel-cors einige Konfigurationselemente zum Einrichten domänenübergreifender Anforderungen bereit.

Installieren Sie zunächst das Erweiterungspaket:

composer require barryvdh/laravel-cors

Dann registrieren Sie den Dienstanbieter im Provider-Array in config/app.php:

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

Veröffentlichen Sie abschließend die Konfigurationsdatei:

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

Zu diesem Zeitpunkt können Sie in config /cors. Konfigurieren Sie domänenübergreifende Anfragen in 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,

];

Konfigurieren Sie einfach entsprechend Ihren Anforderungen.

Die oben genannten Methoden zum Einrichten domänenübergreifender Einstellungen in Laravel wählen Sie einfach die für Sie passende aus.

Das obige ist der detaillierte Inhalt vonSo richten Sie domänenübergreifendes Laravel ein (zwei Methoden). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn