Heim > PHP-Framework > Laravel > So deaktivieren Sie Einschränkungen für domänenübergreifende Anfragen in Laravel-Projekten

So deaktivieren Sie Einschränkungen für domänenübergreifende Anfragen in Laravel-Projekten

PHPz
Freigeben: 2023-04-13 14:29:08
Original
893 Leute haben es durchsucht

Wenn Sie Laravel zum Erstellen von Webanwendungen verwenden, verbietet der Browser aus Sicherheitsgründen standardmäßig domänenübergreifende Anfragen zwischen verschiedenen Domänen, was dazu führen kann, dass einige Funktionen nicht ordnungsgemäß funktionieren. In diesem Artikel wird erläutert, wie Sie Einschränkungen für Cross-Origin-Anfragen in einer Laravel-Anwendung deaktivieren.

Cross-Origin-Request ist eine Technologie, die domänenübergreifende Anfragen im Browser initiiert, beispielsweise eine Anfrage an eine API, die auf localhost:8080 läuft, von einer Anwendung, die auf localhost:8000 läuft.

Laravel hat standardmäßig recht strenge Beschränkungen für domänenübergreifende Anfragen. Dies dient dazu, Angriffe zur Fälschung standortübergreifender Anfragen zu verhindern. Wenn Ihre Anwendung domänenübergreifende Anforderungen unterstützen muss, müssen Sie daher einige Schritte unternehmen, um die Einschränkungen für domänenübergreifende Anforderungen von Laravel zu deaktivieren.

Hier sind einige Methoden, mit denen Sie Einschränkungen für domänenübergreifende Anfragen in Ihrer Laravel-Anwendung deaktivieren können:

  1. Verwenden eines Proxys

Sie können einen Proxy verwenden, um domänenübergreifende Anfragen weiterzuleiten. In diesem Fall wird die Anfrage an einen Server gesendet, der sich in derselben Domäne wie die Webanwendung befindet und für den keine domänenübergreifenden Anfragebeschränkungen gelten. Laravel-Anwendungen erwarten immer, dass Anfragen vom lokalen Server kommen. Machen Sie sich also keine Sorgen um die gerenderte Schnittstelle.

  1. Middleware hinzufügen

Es ist möglich, eine Middleware zu schreiben, um domänenübergreifende Anfragen zu ermöglichen. Diese Middleware legt die erforderlichen Header fest, um die Beantwortung ursprungsübergreifender Anfragen zu ermöglichen. Hier ist ein Beispielcode zum Hinzufügen von Middleware in Ihrer Laravel-Anwendung:

<?php
namespace App\Http\Middleware;

use Closure;

class CorsMiddleware {
    public function handle($request, Closure $next) {
        $headers = [
            &#39;Access-Control-Allow-Origin&#39; => '*',
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin',
        ];
        if ($request->getMethod() == "OPTIONS") {
            return response()->json('{"method":"OPTIONS"}', 200, $headers);
        }
        $response = $next($request);
        foreach ($headers as $key => $value) {
            $response->header($key, $value);
        }
        return $response;
    }
}
Nach dem Login kopieren

In Ihrer Anwendung können Sie diese Middleware zu den Routen hinzufügen, auf denen Sie domänenübergreifende Anforderungsbeschränkungen deaktivieren möchten, oder sie zur globalen Middleware-Gruppe hinzufügen.

  1. Verwendung der domänenübergreifenden Anforderungsfunktion von Laravel

Laravel bietet eine integrierte Möglichkeit, domänenübergreifende Anforderungen zu bearbeiten. Die domänenübergreifende Anforderungsfunktion von Laravel kann beispielsweise in einer Route oder einem Controller verwendet werden:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;

class ApiController extends Controller
{
    public function index(Request $request)
    {
        $data = [
            &#39;name&#39; => 'John Doe',
            'email' => 'johndoe@example.com',
        ];

        $response = new Response($data);
        $response->header('Access-Control-Allow-Origin', '*');
        $response->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
        $response->header('Access-Control-Allow-Headers', 'Content-Type, X-Auth-Token, Origin');

        return $response;
    }
}
Nach dem Login kopieren

Der obige Code legt den Antwortheader fest, um domänenübergreifende Anforderungen von allen Ursprüngen zuzulassen.

Zusammenfassung:

In diesem Artikel werden drei Methoden zum Deaktivieren domänenübergreifender Anforderungsbeschränkungen in Laravel-Anwendungen vorgestellt. Die Verwendung eines Proxys ist wahrscheinlich der einfachste Weg, dies zu tun, aber Sie können Middleware oder die integrierten Funktionen von Laravel verwenden, um eine detailliertere Kontrolle über Cross-Origin-Anfragen zu erhalten. Abhängig von Ihren Anwendungsanforderungen können Sie die Richtlinie auswählen, die am besten zu Ihnen passt, um Einschränkungen für Cross-Origin-Anfragen zu deaktivieren.

Das obige ist der detaillierte Inhalt vonSo deaktivieren Sie Einschränkungen für domänenübergreifende Anfragen in Laravel-Projekten. 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