Maison > développement back-end > tutoriel php > Pourquoi CORS ne fonctionne-t-il pas dans mon application PHP malgré la définition des en-têtes Access-Control-Allow-Origin ?

Pourquoi CORS ne fonctionne-t-il pas dans mon application PHP malgré la définition des en-têtes Access-Control-Allow-Origin ?

DDD
Libérer: 2024-11-03 04:55:02
original
505 Les gens l'ont consulté

Why is CORS not working in my PHP application despite setting Access-Control-Allow-Origin headers?

CORS ne fonctionne pas en PHP

Lors de la tentative d'envoi d'une requête POST avec des données de formulaire de www.siteone.com à www.sitetwo. com utilisant CORS, l'erreur suivante est rencontrée :

XMLHttpRequest cannot load http://www.sitetwo.com/cors.php. Origin http://www.siteone.com is not allowed by Access-Control-Allow-Origin.
Copier après la connexion

Malgré la configuration des en-têtes CORS dans cors.php sur www.sitetwo.com :

<code class="php">header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');</code>
Copier après la connexion

La requête échoue toujours en raison à une mauvaise implémentation de la configuration de l'en-tête. Le code mis à jour qui résout ce problème est :

<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

Ce code révisé répond aux en-têtes Access-Control reçus lors des requêtes OPTIONS et autorise les requêtes de n'importe quelle origine, permettant à CORS de fonctionner correctement.

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 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