Heim > PHP-Framework > Laravel > Hauptteil

So verwenden Sie Middleware, um Cross-Origin Resource Sharing (CORS) in Laravel zu implementieren

WBOY
Freigeben: 2023-11-02 13:57:28
Original
1452 Leute haben es durchsucht

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

在这个中间件中,我们设置了三个响应头,分别是:Access-Control-Allow-OriginAccess-Control-Allow-MethodsAccess-Control-Allow-HeadersAccess-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,
];
Nach dem Login kopieren

以上代码将添加CorsMiddleware中间件到全局中间件堆栈中,以便它可以应用于每一个请求。

步骤三:使用CORS中间件

为了验证我们的CORS中间件是否有效,我们可以在一个API路由中使用它。在routes/api.php文件中,添加一个GET路由,并为该路由使用CorsMiddleware中间件:

Route::get('/test', function () {
    return response()->json(['message' => 'Hello World']);
})->middleware('cors');
Nach dem Login kopieren

这个路由将返回一个包含"Hello World"消息的JSON响应。

步骤四:验证CORS设置

现在我们可以使用任何支持跨域访问的客户端,例如浏览器或REST客户端进行验证。在浏览器的开发工具中,我们可以看到响应的头部信息。

例如,在Chrome浏览器上,打开开发者工具,切换到"Network"选项卡,然后访问我们在步骤三中定义的路由/api/test。在响应头部信息中,我们应该看到Access-Control-Allow-OriginAccess-Control-Allow-MethodsAccess-Control-Allow-Headers

Öffnen Sie die Datei 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!

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