Heim >Backend-Entwicklung >PHP-Tutorial >Wie aktiviere ich CORS in Laravel 5.1?

Wie aktiviere ich CORS in Laravel 5.1?

DDD
DDDOriginal
2024-12-07 17:41:11733Durchsuche

How to Enable CORS in Laravel 5.1?

So aktivieren Sie CORS in Laravel 5.1

Die Integration von CORS (Cross-Origin Resource Sharing) in Laravel ermöglicht es Servern, Berechtigungen für Cross-Origin Resource Sharing zu erteilen Ursprungs-API-Aufrufe. Dieser Artikel führt Sie durch spezifische Möglichkeiten, CORS in Laravel Version 5.1 zu aktivieren.

CORS Middleware für Laravel

// app/Http/Middleware/CORS.php

namespace App\Http\Middleware;

use Closure;

class CORS
{

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

        header("Access-Control-Allow-Origin: *");

        // ALLOW OPTIONS METHOD
        $headers = [
            'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin'
        ];
        if($request->getMethod() == "OPTIONS") {
            // The client-side application can set only headers allowed in Access-Control-Allow-Headers
            return Response::make('OK', 200, $headers);
        }

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

}

Registrieren Sie die CORS Middleware

Nachdem Sie die Middleware erstellt haben, registrieren Sie sie in der app/Http/Kernel.php Datei:

// app/Http/Kernel.php

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

CORS in Routen anwenden

Verwenden Sie abschließend die CORS-Middleware in den Routen, in denen Sie ursprungsübergreifende API-Aufrufe zulassen möchten:

Route::get('example', array('middleware' => 'cors', 'uses' => 'ExampleController@dummy'));

Hinweis für Laravel ^8.0

In Bei Laravel-Versionen 8.0 und höher ist es aufgrund von Namespace-Änderungen wichtig, die folgende Syntax zum Registrieren der CORS-Middleware zu verwenden:

// app/Http/Kernel.php

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

// routes/web.php or routes/api.php

use App\Http\Controllers\ExampleController;

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

Das obige ist der detaillierte Inhalt vonWie aktiviere ich CORS 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