Maison > cadre php > Laravel > Comment configurer Laravel inter-domaines (deux méthodes)

Comment configurer Laravel inter-domaines (deux méthodes)

PHPz
Libérer: 2023-04-08 15:30:02
original
3394 Les gens l'ont consulté

Dans les projets avec front-end et back-end séparés, des problèmes inter-domaines peuvent survenir lorsque le front-end demande l'interface back-end. Parmi eux, un scénario typique est le suivant : le projet frontal s'exécute sur http://localhost:8080 et le projet back-end s'exécute sur http://localhost:8000. Dans ce cas, les paramètres inter-domaines doivent être définis. ensemble.

Dans Laravel, vous pouvez utiliser les deux méthodes suivantes pour configurer plusieurs domaines.

  1. Méthode Middleware

Créez d'abord un middleware CorsMiddleware :

php artisan make:middleware CorsMiddleware
Copier après la connexion

Gérez les domaines inter-domaines dans CorsMiddleware :

<?php

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $origin = $request->header('Origin') ?: '*';

        header('Access-Control-Allow-Origin: ' . $origin);
        header('Access-Control-Allow-Headers: Origin, Content-Type, Authorization');
        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');

        return $next($request);
    }
}
Copier après la connexion

Le middleware sera enregistré dans le tableau $middleware dans Http/Kernel.php:

protected $middleware = [
    // ...
    \App\Http\Middleware\CorsMiddleware::class,
];
Copier après la connexion

À ce moment , Laravel ajoutera des informations liées à plusieurs domaines telles que Access-Control-Allow-Origin dans l'en-tête de réponse.

  1. Pack d'extension Laravel-cors

En fait, la communauté Laravel dispose déjà de nombreux packages d'extension open source qui peuvent être utilisés pour gérer les problèmes inter-domaines. Par exemple, laravel-cors fournit certains éléments de configuration pour configurer des requêtes inter-domaines.

Tout d'abord, installez le package d'extension :

composer require barryvdh/laravel-cors
Copier après la connexion

Ensuite, enregistrez le fournisseur de services dans le tableau des fournisseurs dans config/app.php :

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
],
Copier après la connexion

Enfin, publiez le fichier de configuration :

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
Copier après la connexion

À ce stade, vous pouvez dans config /cors. Configurez les requêtes inter-domaines en php :

return [

    /*
    |--------------------------------------------------------------------------
    | Laravel CORS Options
    |--------------------------------------------------------------------------
    |
    | The allowed_methods and allowed_headers options are case-insensitive.
    |
    */

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'allowed_methods' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => false,

];
Copier après la connexion

Configurez simplement en fonction de vos besoins.

Vous trouverez ci-dessus deux méthodes pour configurer les paramètres inter-domaines dans Laravel. Choisissez simplement celle qui vous convient.

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