Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man benutzerdefinierte CORS-Middleware in Laravel 5.1?

Wie implementiert man benutzerdefinierte CORS-Middleware in Laravel 5.1?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-22 16:21:09214Durchsuche

How to Implement Custom CORS Middleware in Laravel 5.1?

Aktivieren von CORS in Laravel 5.1

Bei der Entwicklung von APIs mit Laravel 5.1 ist die Aktivierung von Cross-Origin Resource Sharing (CORS) von entscheidender Bedeutung, um Anfragen zuzulassen unterschiedlicher Herkunft. Obwohl es verschiedene CORS-Bibliotheken gibt, konzentriert sich dieser Artikel auf eine benutzerdefinierte Middleware-Implementierung, die speziell auf Laravel 5.1 zugeschnitten ist.

Middleware für CORS

Um CORS zu aktivieren, erstellen Sie eine Middleware-Klasse in app/Http/Middleware/CORS.php:

use Closure;

class CORS {
    public function handle($request, Closure $next)
    {
        header("Access-Control-Allow-Origin: *");
        $headers = [
            '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::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach ($headers as $key => $value) {
            $response->header($key, $value);
        }
        return $response;
    }
}

Registrieren der Middleware

Registrieren Sie Ihre Middleware in der App/Http/Kernel.php:

protected $routeMiddleware = [
    'cors' => 'App\Http\Middleware\CORS',
];

Verwenden der Middleware

Um CORS zu verwenden Middleware in einer Route hinzufügen, fügen Sie 'middleware' => 'cors' zur Routendefinition:

Route::get('example', ['middleware' => 'cors', function () {
    return 'example';
}]);

Laravel ^8.0 Update

In Laravel-Versionen 8.0 und höher müssen Sie den Controller-Namespace importieren und verwenden Klassennamen wie folgt:

use App\Http\Controllers\ExampleController;

Route::get('example', [ExampleController::class, 'dummy'])->middleware('cors');

Indem Sie diese Schritte befolgen, können Sie CORS mühelos in Ihrem Laravel aktivieren 5.1 API, die Anfragen von verschiedenen Domänen ermöglicht und eine sichere und flexible API-Umgebung bietet.

Das obige ist der detaillierte Inhalt vonWie implementiert man benutzerdefinierte CORS-Middleware in Laravel 5.1?. 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