Maison > développement back-end > tutoriel php > Comment activer CORS dans Laravel 5.1 ?

Comment activer CORS dans Laravel 5.1 ?

DDD
Libérer: 2024-12-07 17:41:11
original
747 Les gens l'ont consulté

How to Enable CORS in Laravel 5.1?

Comment activer CORS dans Laravel 5.1

L'intégration de CORS (Cross-Origin Resource Sharing) dans Laravel permet aux serveurs d'accorder l'autorisation de cross-Origin appels d'API d'origine. Cet article vous guide à travers des méthodes spécifiques pour activer CORS dans Laravel version 5.1.

Middleware CORS pour 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;
    }

}
Copier après la connexion

Enregistrer le middleware CORS

Après avoir créé le middleware, enregistrez-le dans le app/Http/Kernel.php file :

// app/Http/Kernel.php

protected $routeMiddleware = [
        //other middlewares
        'cors' => 'App\Http\Middleware\CORS',
    ];
Copier après la connexion

Appliquer CORS dans les routes

Enfin, utilisez le middleware cors dans les routes où vous souhaitez autoriser les appels d'API d'origine croisée :

Route::get('example', array('middleware' => 'cors', 'uses' => 'ExampleController@dummy'));
Copier après la connexion

Remarque pour Laravel ^8.0

Dans Versions Laravel 8.0 et supérieures, il est important d'utiliser la syntaxe suivante pour enregistrer le middleware CORS en raison des modifications de l'espace de noms :

// 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');
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal