Heim  >  Artikel  >  PHP-Framework  >  So richten Sie Cross-Domain in Laravel richtig ein

So richten Sie Cross-Domain in Laravel richtig ein

PHPz
PHPzOriginal
2023-04-13 10:07:152476Durchsuche

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.

1. Installieren Sie die Middleware „Barryvdh-cors“

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,
];

2 Konfigurieren Sie die Middleware

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).

3. Middleware in Routen oder Controllern verwenden

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;
    }
}

4. Fazit

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!

Stellungnahme:
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