Maison  >  Article  >  développement back-end  >  Configuration CORS : .htaccess vs PHP – Quelle approche vous convient le mieux ?

Configuration CORS : .htaccess vs PHP – Quelle approche vous convient le mieux ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 18:39:29680parcourir

CORS Configuration: .htaccess vs. PHP - Which Approach is Right for You?

Configuration CORS pour .htaccess : clarification et approche alternative

Pour activer l'accès CORS dans votre service Web RESTful, le configurer via .htaccess est une approche commune. Cependant, si vous rencontrez des difficultés ou préférez une solution alternative, cet article explore les deux options.

1. Configuration .htaccess (avec améliorations) :

Pour configurer avec succès CORS dans .htaccess, assurez-vous d'inclure les éléments suivants en plus de l'en-tête de base Access-Control-Allow-Origin :

Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

Cette ligne spécifie les méthodes HTTP autorisées pour les requêtes CORS.

2. Configuration côté serveur en PHP :

Si vous préférez définir les en-têtes CORS en PHP (en supposant que vous utilisez un framework PHP comme Slim), voici comment procéder dans votre script index.php :

// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    // Do additional checks to restrict origins as needed
    header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 86400');    // Cache for 1 day
}

// Handling 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']}");
}

Pour les utilisateurs Slim, ajoutez cette route pour gérer les requêtes OPTIONS avec des réponses HTTP 200 :

$app->map('/:x+', function($x) {
    http_response_code(200);
})->via('OPTIONS');

Ces approches devraient résoudre vos problèmes CORS. N'oubliez pas d'ajuster les paramètres en fonction des besoins spécifiques de votre application.

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