Laravel est un framework d'application Web PHP populaire qui offre de nombreuses fonctionnalités puissantes, notamment le routage, le middleware, l'ORM, etc. Cependant, lorsque nous construisons des applications Web avec Laravel, il est très courant de rencontrer des problèmes inter-domaines. L'interdomaine est généralement dû à la politique de même origine du navigateur, qui restreint l'accès aux ressources de différents noms de domaine. Par conséquent, lorsque nous faisons une demande vers un domaine différent, nous devons configurer plusieurs domaines.
Ci-dessous, nous expliquerons comment configurer correctement le cross-domain dans Laravel.
Le progiciel tiers "Barryvdh-cors" lié à Laravel peut aider les développeurs à résoudre des problèmes inter-domaines. Développé par un Néerlandais nommé "Barry vd. Heuvel", ce middleware permet à Laravel d'effectuer la configuration CORS (Cross-Origin Resource Sharing) côté serveur.
Pour utiliser ce middleware, nous devons d'abord l'installer. Exécutez la commande suivante :
composer require barryvdh/laravel-cors
Après avoir installé le middleware, nous devons l'enregistrer auprès de l'application. Ouvrez le fichier config/app.php et ajoutez le code suivant dans le tableau des fournisseurs :
'providers' => [ // ... Barryvdh\Cors\ServiceProvider::class, ];
Ajoutez ensuite le code suivant dans le tableau des alias :
'aliases' => [ // ... 'Cors' => Barryvdh\Cors\Facade::class, ];
Après avoir enregistré le middleware, nous devons l'ajouter. à l'application Configurez-le dans . Ouvrez le fichier config/cors.php, il peut être généré automatiquement, sinon veuillez créer le fichier manuellement.
Dans le fichier, vous pouvez configurer des noms de domaine qui autorisent l'accès entre domaines et des méthodes de requête HTTP qui permettent le partage via AJAX, etc. Voici un exemple de configuration :
return [ 'supports_credentials' => false, 'allowed_origins' => ['*'], 'allowed_headers' => ['Content-Type', 'Authorization'], 'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], 'exposed_headers' => [], 'max_age' => 0, ];
Dans cet exemple, nous autoriserons l'accès cross-origin depuis toutes les origines, mais uniquement des méthodes de requête et des en-têtes de requête spécifiques. Si vous avez besoin de personnaliser plus d'options, veuillez consulter [ce document](https://github.com/barryvdh/laravel-cors).
Lorsque nous avons installé et configuré le middleware "Barryvdh-cors", nous pouvons l'utiliser dans les routes ou les contrôleurs.
Utilisé dans le routage :
Route::get('/data', function () { return ['message' => 'Hello World']; })->middleware('cors'); // Use cors middleware
Utilisé dans le contrôleur :
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; } }
Avec le middleware "Barryvdh-cors", nous pouvons facilement résoudre les problèmes inter-domaines dans les applications Laravel. Ce middleware prend non seulement en charge le routage et les contrôleurs, mais prend également en charge la configuration globale et la configuration de groupe, etc., afin que nous puissions contrôler plus librement et plus précisément les politiques inter-domaines.
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!