Kürzlich bin ich während der Entwicklung auf relevante Lösungen gestoßen, indem ich nach relevanten Informationen gesucht habe. Der folgende Artikel stellt Ihnen daher hauptsächlich domänenübergreifende Lösungen in der Laravel-Entwicklung vor Ausführlich. Freunde, die es brauchen, können es sich gemeinsam ansehen.
Vorwort
Wie wir alle wissen, verwenden wir alle Laravel für die Entwicklung, insbesondere wenn das Front-End und das Back-End vollständig sind getrennt, da das Front-End-Projekt auf dem angegebenen Port Ihres eigenen Computers (es kann auch der Computer eines anderen sein) ausgeführt wird, z. B. localhost: 8000, und das Laravel-Programm auf einem anderen Port ausgeführt wird, also domänenübergreifend Aufgrund der Same-Origin-Richtlinie des Browsers sind domänenübergreifende Anfragen illegal. Tatsächlich ist dieses Problem leicht zu lösen, indem einfach eine Middleware hinzugefügt wird. Im Folgenden gibt es nicht viel zu sagen. Folgen wir dem Herausgeber, um die detaillierten Lösungen zu sehen.
Lösung:
1. Erstellen Sie eine neue Middleware
php artisan make:middleware EnableCrossRequestMiddleware
2. Schreiben Sie den Middleware-Inhalt
<?php namespace App\Http\Middleware; use Closure; class EnableCrossRequestMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); $origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : ''; $allow_origin = [ 'http://localhost:8000', ]; if (in_array($origin, $allow_origin)) { $response->header('Access-Control-Allow-Origin', $origin); $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN'); $response->header('Access-Control-Expose-Headers', 'Authorization, authenticated'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS'); $response->header('Access-Control-Allow-Credentials', 'true'); } return $response; } }
Die Array-Variable $allow_origin ist die Liste der domänenübergreifenden, die Sie zulassen, und kann geändert werden alleine.
3. Registrieren Sie dann die Middleware in der Kerneldatei
protected $middleware = [ // more App\Http\Middleware\EnableCrossRequestMiddleware::class, ];
Fügen Sie das $middleware-Attribut des AppHttpKernel hinzu Klasse, Die hier registrierte Middleware gehört zur globalen Middleware.
Dann werden Sie feststellen, dass die Frontend-Seite bereits domänenübergreifende Anfragen senden kann.
Es ist normal, dass es eine weitere Anfrage gibt, bei der die Methode auf „Optionen“ gesetzt ist, da der Browser zunächst feststellen muss, ob der Server die domänenübergreifende Anfrage zulässt.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Informationen zum Empfang von Datenanalysen durch Laravel vom Front-End-Ajax
So implementieren Sie Supervisor im Laravel-Framework in PHP Asynchronen Prozess ausführen
Das obige ist der detaillierte Inhalt vonSo lösen Sie domänenübergreifende Probleme in der Laravel-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!