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
Freigeben: 2023-04-08 15:30:02
Original
3418 Leute haben es durchsucht

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
Nach dem Login kopieren

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);
    }
}
Nach dem Login kopieren

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

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

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
Nach dem Login kopieren

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

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
],
Nach dem Login kopieren

Veröffentlichen Sie abschließend die Konfigurationsdatei:

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
Nach dem Login kopieren

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,

];
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage