Heim > Artikel > PHP-Framework > So verwenden Sie Middleware, um Cross-Origin Resource Sharing (CORS) in Laravel zu implementieren
So verwenden Sie Middleware, um Cross-Origin Resource Sharing (CORS) in Laravel zu implementieren
Übersicht:
Cross-Origin Resource Sharing (CORS) ist ein Browsermechanismus, der es Webanwendungen ermöglicht, auf verschiedenen Domänennamen zu teilen Ressourcen unten. Laravel, ein beliebtes PHP-Framework, bietet eine bequeme Möglichkeit, CORS zu handhaben, indem es Middleware zur Verarbeitung domänenübergreifender Anfragen verwendet.
In diesem Artikel erfahren Sie, wie Sie Middleware zum Implementieren von CORS in Laravel verwenden, einschließlich der Konfiguration von Middleware, dem Festlegen zulässiger Domänennamen und Anforderungsmethoden sowie der Bereitstellung spezifischer Codebeispiele.
Schritt 1: CORS-Middleware erstellen
Zuerst müssen wir eine Middleware für den Umgang mit CORS erstellen. Verwenden Sie den folgenden Befehl im Terminal, um eine neue Middleware-Datei zu generieren:
php artisan make:middleware CorsMiddleware
Dieser Befehl generiert eine Datei mit dem Namen im Verzeichnis <code>app/Http/Middleware
CorsMiddleware .php-Datei. app/Http/Middleware
目录下生成一个名为CorsMiddleware.php
的文件。
打开CorsMiddleware.php
文件,修改handle
方法如下:
public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); return $response; }
在这个中间件中,我们设置了三个响应头,分别是:Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
。Access-Control-Allow-Origin
允许所有源进行跨域访问,您也可以根据需要设置特定的域名。Access-Control-Allow-Methods
定义允许的请求方法,这里我们设置了常见的GET、POST、PUT、DELETE和OPTIONS。Access-Control-Allow-Headers
允许的请求头中包含了Content-Type和Authorization。
步骤二:注册CORS中间件
打开app/Http/Kernel.php
文件,找到$middleware
数组,并在数组中添加以下行代码:
protected $middleware = [ // ... AppHttpMiddlewareCorsMiddleware::class, ];
以上代码将添加CorsMiddleware
中间件到全局中间件堆栈中,以便它可以应用于每一个请求。
步骤三:使用CORS中间件
为了验证我们的CORS中间件是否有效,我们可以在一个API路由中使用它。在routes/api.php
文件中,添加一个GET路由,并为该路由使用CorsMiddleware
中间件:
Route::get('/test', function () { return response()->json(['message' => 'Hello World']); })->middleware('cors');
这个路由将返回一个包含"Hello World"消息的JSON响应。
步骤四:验证CORS设置
现在我们可以使用任何支持跨域访问的客户端,例如浏览器或REST客户端进行验证。在浏览器的开发工具中,我们可以看到响应的头部信息。
例如,在Chrome浏览器上,打开开发者工具,切换到"Network"选项卡,然后访问我们在步骤三中定义的路由/api/test
。在响应头部信息中,我们应该看到Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
CorsMiddleware.php
und ändern Sie die Methode handle
wie folgt: rrreee
In dieser Middleware legen wir drei Antwortheader fest: Access -Control-Allow-Origin
, Access-Control-Allow-Methods
und Access-Control-Allow-Headers
. Access-Control-Allow-Origin
ermöglicht den domänenübergreifenden Zugriff aus allen Quellen, und Sie können bei Bedarf auch bestimmte Domänennamen festlegen. Access-Control-Allow-Methods
definiert die zulässigen Anforderungsmethoden. Hier legen wir die allgemeinen GET, POST, PUT, DELETE und OPTIONS fest. Zu den zulässigen Anforderungsheadern von Access-Control-Allow-Headers
gehören Content-Type und Authorization. Schritt 2: CORS-Middleware registrieren Öffnen Sie die Datei app/Http/Kernel.php
, suchen Sie das Array $middleware
und fügen Sie die folgenden Codezeilen hinzu Array: 🎜 rrreee🎜Der obige Code fügt die CorsMiddleware
-Middleware zum globalen Middleware-Stack hinzu, sodass sie auf jede Anfrage angewendet werden kann. 🎜🎜Schritt 3: CORS-Middleware verwenden 🎜🎜Um zu überprüfen, ob unsere CORS-Middleware gültig ist, können wir sie in einer API-Route verwenden. Fügen Sie in der Datei routes/api.php
eine GET-Route hinzu und verwenden Sie die Middleware CorsMiddleware
für diese Route: 🎜rrreee🎜Diese Route gibt eine Nachricht mit „Hello World“ zurück. Die JSON-Antwort der Nachricht. 🎜🎜Schritt 4: CORS-Einstellungen überprüfen🎜🎜Jetzt können wir zur Überprüfung jeden Client verwenden, der domänenübergreifenden Zugriff unterstützt, z. B. einen Browser oder einen REST-Client. In den Entwicklungstools des Browsers können wir die Antwortheaderinformationen sehen. 🎜🎜Öffnen Sie beispielsweise im Chrome-Browser die Entwicklertools, wechseln Sie zur Registerkarte „Netzwerk“ und greifen Sie dann auf die Route /api/test
zu, die wir in Schritt drei definiert haben. In den Antwortheadern sollten wir Access-Control-Allow-Origin
, Access-Control-Allow-Methods
und Access-Control-Allow-Headers sehen. Code> Einstellungen. 🎜🎜Wenn alles in Ordnung ist, sollten Sie in der Lage sein, HTTP-Anfragen von verschiedenen Domänennamen zu senden und erfolgreich Antworten zu erhalten. 🎜🎜Fazit: 🎜🎜Durch die Verwendung von Middleware bietet das Laravel-Framework eine einfache Möglichkeit, eine domänenübergreifende gemeinsame Nutzung von Ressourcen zu erreichen. In diesem Artikel erfahren Sie, wie Sie CORS-Middleware erstellen, Middleware registrieren und Middleware verwenden, um domänenübergreifende Anforderungen zu verarbeiten. Ich hoffe, dieser Artikel kann Ihnen bei der Implementierung von CORS in Laravel helfen und bietet genügend Codebeispiele als Referenz. 🎜
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Middleware, um Cross-Origin Resource Sharing (CORS) in Laravel zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!