Maison  >  Article  >  développement back-end  >  Comment activer CORS pour le framework PHP Slim à l'aide des en-têtes PHP ?

Comment activer CORS pour le framework PHP Slim à l'aide des en-têtes PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 04:40:02792parcourir

How to Enable CORS for Slim PHP Framework Using PHP Headers?

Activation de CORS pour Slim PHP Framework dans .htaccess

Pour activer le partage de ressources cross-origine (CORS) pour un service RESTful créé avec le Framework PHP SLIM, les modifications du fichier .htaccess sont couramment utilisées. Cependant, si les problèmes persistent après avoir apporté la modification recommandée dans .htaccess, une approche alternative peut être utilisée.

Utilisation des en-têtes PHP

Au lieu de définir des en-têtes CORS dans .htaccess , cela peut être fait directement dans le code PHP, notamment dans le fichier index.php. En ajoutant le code suivant au début du fichier, les en-têtes CORS seront définis pour chaque requête HTTP reçue par l'application :

<code class="php">// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // should do a check here to match $_SERVER['HTTP_ORIGIN'] to a
    // whitelist of safe domains
    header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 86400');    // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");         

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

}</code>

Gestion des requêtes OPTIONS

Si vous utilisez le framework PHP SLIM, vous devrez peut-être également gérer les requêtes OPTIONS. Ajoutez la route suivante à l'objet $app pour garantir que les requêtes OPTIONS reçoivent une réponse HTTP 200 :

<code class="php">// return HTTP 200 for HTTP OPTIONS requests
$app->map('/:x+', function($x) {
    http_response_code(200);
})->via('OPTIONS');</code>

Ces modifications PHP offrent une alternative à la définition des en-têtes CORS dans .htaccess. En ajoutant les deux blocs de code au fichier index.php, vous pouvez activer CORS pour votre service SLIM PHP RESTful.

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!

Déclaration:
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