Pourquoi CORS ne fonctionne-t-il pas dans mon application PHP ?

Mary-Kate Olsen
Libérer: 2024-11-03 04:54:02
original
224 Les gens l'ont consulté

Why Is CORS Not Working in My PHP Application?

CORS ne fonctionne pas en PHP

Dans le partage de ressources cross-origin (CORS), une page Web peut demander des ressources à une autre origine, impliquant généralement différents domaines, ports, ou des protocoles. Cependant, par défaut, les navigateurs limitent ces requêtes pour des raisons de sécurité.

Dans le scénario donné, l'utilisateur tente une requête POST de www.siteone.com à www.sitetwo.com à l'aide de CORS. L'erreur rencontrée suggère qu'il y a une inadéquation entre les en-têtes de requête et de réponse.

Pour configurer correctement CORS, il est crucial de le gérer avec soin. La fonction PHP suivante offre une approche plus complète :

<code class="php">// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
    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, OPTIONS");         

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

    exit(0);
}

echo "You have CORS!";</code>
Copier après la connexion

En remplaçant le code d'origine par cette fonction améliorée, l'utilisateur a réussi à résoudre le problème CORS. Cette approche garantit que tous les en-têtes nécessaires sont définis de manière appropriée, permettant aux requêtes d'origine croisée de fonctionner comme prévu.

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