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

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

Susan Sarandon
Libérer: 2024-11-03 18:39:29
original
756 Les gens l'ont consulté

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"
Copier après la connexion

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']}");
}
Copier après la connexion

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');
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal