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.
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.
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!