Maison >développement back-end >tutoriel php >Comment activer CORS dans 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; } }
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', ];
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'));
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');
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!