Comment utiliser le middleware pour implémenter le partage de ressources Cross-Origin (CORS) dans Laravel
Présentation :
Le partage de ressources Cross-Origin (CORS) est un mécanisme de navigateur utilisé pour permettre aux applications Web de s'exécuter sur différents noms de domaine. Partager ressources ci-dessous. Laravel, un framework PHP populaire, fournit un moyen pratique de gérer CORS en utilisant un middleware pour gérer les requêtes inter-domaines.
Cet article vous expliquera comment utiliser le middleware pour implémenter CORS dans Laravel, notamment comment configurer le middleware, définir les noms de domaine et les méthodes de requête autorisés, et fournir des exemples de code spécifiques.
Étape 1 : Créer un middleware CORS
Tout d'abord, nous devons créer un middleware pour gérer CORS. Utilisez la commande suivante dans le terminal pour générer un nouveau fichier middleware :
php artisan make:middleware CorsMiddleware
Cette commande générera un fichier nommé dans le répertoire <code>app/Http/Middleware
CorsMiddleware Fichier .php. app/Http/Middleware
目录下生成一个名为CorsMiddleware.php
的文件。
打开CorsMiddleware.php
文件,修改handle
方法如下:
public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); return $response; }
在这个中间件中,我们设置了三个响应头,分别是:Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
。Access-Control-Allow-Origin
允许所有源进行跨域访问,您也可以根据需要设置特定的域名。Access-Control-Allow-Methods
定义允许的请求方法,这里我们设置了常见的GET、POST、PUT、DELETE和OPTIONS。Access-Control-Allow-Headers
允许的请求头中包含了Content-Type和Authorization。
步骤二:注册CORS中间件
打开app/Http/Kernel.php
文件,找到$middleware
数组,并在数组中添加以下行代码:
protected $middleware = [ // ... AppHttpMiddlewareCorsMiddleware::class, ];
以上代码将添加CorsMiddleware
中间件到全局中间件堆栈中,以便它可以应用于每一个请求。
步骤三:使用CORS中间件
为了验证我们的CORS中间件是否有效,我们可以在一个API路由中使用它。在routes/api.php
文件中,添加一个GET路由,并为该路由使用CorsMiddleware
中间件:
Route::get('/test', function () { return response()->json(['message' => 'Hello World']); })->middleware('cors');
这个路由将返回一个包含"Hello World"消息的JSON响应。
步骤四:验证CORS设置
现在我们可以使用任何支持跨域访问的客户端,例如浏览器或REST客户端进行验证。在浏览器的开发工具中,我们可以看到响应的头部信息。
例如,在Chrome浏览器上,打开开发者工具,切换到"Network"选项卡,然后访问我们在步骤三中定义的路由/api/test
。在响应头部信息中,我们应该看到Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
CorsMiddleware.php
et modifiez la méthode handle
comme suit : rrreee
Dans ce middleware, nous définissons trois en-têtes de réponse, qui sont : Access -Control-Allow-Origin
, Access-Control-Allow-Methods
et Access-Control-Allow-Headers
. Access-Control-Allow-Origin
permet un accès inter-domaines à partir de toutes les sources, et vous pouvez également définir des noms de domaine spécifiques selon vos besoins. Access-Control-Allow-Methods
définit les méthodes de requête autorisées. Ici, nous définissons les valeurs communes GET, POST, PUT, DELETE et OPTIONS. Les en-têtes de requête autorisés de Access-Control-Allow-Headers
incluent Content-Type et Authorization. Étape 2 : Enregistrez le middleware CORS Ouvrez le fichier app/Http/Kernel.php
, recherchez le tableau $middleware
et ajoutez les lignes de code suivantes dans le array : 🎜 rrreee🎜Le code ci-dessus ajoutera le middleware CorsMiddleware
à la pile middleware globale afin qu'il puisse être appliqué à chaque requête. 🎜🎜Étape 3 : Utiliser le middleware CORS 🎜🎜Pour vérifier si notre middleware CORS est valide, nous pouvons l'utiliser dans une route API. Dans le fichier routes/api.php
, ajoutez une route GET et utilisez le middleware CorsMiddleware
pour cette route : 🎜rrreee🎜Cette route renverra un message contenant "Hello World" La réponse JSON du message. 🎜🎜Étape 4 : Vérifiez les paramètres CORS🎜🎜Nous pouvons désormais utiliser n'importe quel client prenant en charge l'accès inter-domaines, tel qu'un navigateur ou un client REST pour la vérification. Dans les outils de développement du navigateur, nous pouvons voir les informations d'en-tête de réponse. 🎜🎜Par exemple, sur le navigateur Chrome, ouvrez les outils de développement, passez à l'onglet "Réseau", puis accédez à la route /api/test
que nous avons définie à la troisième étape. Dans les en-têtes de réponse, nous devrions voir Access-Control-Allow-Origin
, Access-Control-Allow-Methods
et Access-Control-Allow-Headers code> paramètres. 🎜🎜Si tout va bien, vous devriez pouvoir envoyer des requêtes HTTP à partir de différents noms de domaine et obtenir des réponses avec succès. 🎜🎜Conclusion : 🎜🎜En utilisant un middleware, le framework Laravel fournit un moyen simple de réaliser un partage de ressources entre domaines. Cet article explique comment créer un middleware CORS, enregistrer un middleware et utiliser un middleware pour gérer les requêtes inter-domaines. J'espère que cet article pourra vous aider à implémenter CORS dans Laravel et fournira suffisamment d'exemples de code pour votre référence. 🎜
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!