Heim > Artikel > PHP-Framework > So richten Sie Cross-Domain in Laravel richtig ein
Laravel ist ein beliebtes PHP-Webanwendungs-Framework, das viele leistungsstarke Funktionen bietet, darunter Routing, Middleware, ORM und mehr. Wenn wir jedoch Webanwendungen mit Laravel erstellen, kommt es sehr häufig zu domänenübergreifenden Problemen. Domänenübergreifend wird normalerweise durch die Same-Origin-Richtlinie des Browsers verursacht, die den Zugriff auf Ressourcen von unterschiedlichen Domänennamen einschränkt. Wenn wir daher eine Anfrage an eine andere Domäne stellen, müssen wir eine domänenübergreifende Einrichtung einrichten.
Im Folgenden stellen wir vor, wie man Cross-Domain in Laravel richtig einrichtet.
Das mit Laravel verwandte Drittanbieter-Softwarepaket „Barryvdh-cors“ kann Entwicklern bei der Lösung domänenübergreifender Probleme helfen. Diese von einem Niederländer namens „Barry vd. Heuvel“ entwickelte Middleware ermöglicht es Laravel, eine CORS-Konfiguration (Cross-Origin Resource Sharing) auf der Serverseite durchzuführen.
Um diese Middleware nutzen zu können, müssen wir sie zuerst installieren. Führen Sie den folgenden Befehl aus:
composer require barryvdh/laravel-cors
Nach der Installation der Middleware müssen wir sie bei der Anwendung registrieren. Öffnen Sie die Datei config/app.php und fügen Sie den folgenden Code im Provider-Array hinzu:
'providers' => [ // ... Barryvdh\Cors\ServiceProvider::class, ];
Fügen Sie dann den folgenden Code im Aliases-Array hinzu:
'aliases' => [ // ... 'Cors' => Barryvdh\Cors\Facade::class, ];
Nach der Registrierung der Middleware müssen wir hinzufügen es an die Anwendung weiterleiten. Konfigurieren Sie es in . Öffnen Sie die Datei config/cors.php. Sie kann automatisch generiert werden. Wenn nicht, erstellen Sie die Datei bitte manuell.
In der Datei können Sie Domänennamen konfigurieren, die domänenübergreifenden Zugriff ermöglichen, und HTTP-Anforderungsmethoden, die die Freigabe über AJAX usw. ermöglichen. Hier ist eine Beispielkonfiguration:
return [ 'supports_credentials' => false, 'allowed_origins' => ['*'], 'allowed_headers' => ['Content-Type', 'Authorization'], 'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], 'exposed_headers' => [], 'max_age' => 0, ];
In diesem Beispiel erlauben wir den domänenübergreifenden Zugriff von allen Ursprüngen, jedoch nur bestimmte Anforderungsmethoden und Anforderungsheader. Wenn Sie weitere Optionen anpassen müssen, lesen Sie bitte [dieses Dokument](https://github.com/barryvdh/laravel-cors).
Wenn wir die Middleware „Barryvdh-cors“ installiert und konfiguriert haben, können wir sie in Routen oder Controllern verwenden.
Verwendet im Routing:
Route::get('/data', function () { return ['message' => 'Hello World']; })->middleware('cors'); // Use cors middleware
Verwendet im Controller:
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Barryvdh\Cors\HandleCors; class ExampleController extends Controller { /** * Use Cors middleware to handle the request */ public function index(Request $request) { $middleware = new HandleCors(); $response = $middleware->handle($request, function($request) { return ['message' => 'Hello World']; }); return $response; } }
Mit der „Barryvdh-cors“-Middleware können wir domänenübergreifende Probleme in Laravel-Anwendungen leicht lösen. Diese Middleware unterstützt nicht nur Routing und Controller, sondern auch die globale Konfiguration und Gruppenkonfiguration usw., sodass wir domänenübergreifende Richtlinien freier und genauer steuern können.
Das obige ist der detaillierte Inhalt vonSo richten Sie Cross-Domain in Laravel richtig ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!