Maison  >  Article  >  développement back-end  >  Pourquoi mon serveur API sur un sous-domaine ne répond-il pas avec l'en-tête « Access-Control-Allow-Origin » malgré une configuration CORS appropriée ?

Pourquoi mon serveur API sur un sous-domaine ne répond-il pas avec l'en-tête « Access-Control-Allow-Origin » malgré une configuration CORS appropriée ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 02:41:28732parcourir

Why Does My API Server on a Subdomain Fail to Respond with the 'Access-Control-Allow-Origin' Header Despite Proper CORS Configuration?

Échec de l'accès au sous-domaine à partir du domaine principal : aucun en-tête « Access-Control-Allow-Origin »

Le problème survient lorsque vous essayez de accéder à un serveur API hébergé sur un sous-domaine à partir d'une application React sur le domaine principal. Lors de l'utilisation de CORS (Cross-Origin Resource Sharing) pour la communication entre origines, le serveur doit envoyer l'en-tête « Access-Control-Allow-Origin » pour spécifier quels domaines sont autorisés à accéder.

Définition du problème

Vous avez rencontré une erreur de politique CORS en essayant d'accéder à l'API depuis l'application React, avec le message d'erreur « Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée. ". Malgré l'utilisation de différentes approches pour définir le middleware CORS, notamment l'utilisation de la bibliothèque gin-contrib/cors et l'ajout manuel de l'en-tête, l'erreur persiste.

Solution

Il s'avère que le problème ne réside pas dans la configuration CORS côté serveur mais dans les paramètres de votre groupe cible AWS Load Balancer. Vous aviez précédemment défini le protocole sur HTTPS dans le groupe cible, même si vous n'aviez fourni que des certificats ACM à Route 53 et ALB. Une fois que vous avez remplacé HTTPS par HTTP dans le groupe cible, le problème a été résolu et l'API est devenue accessible depuis l'application React.

Débogage des problèmes CORS

Pour diagnostiquer CORS- problèmes liés, il est crucial d'examiner la demande de contrôle en amont à l'aide de Chrome DevTools ou d'un outil dédié tel que cURL. Vérifiez l’en-tête de réponse de contrôle en amont pour vous assurer que l’en-tête « Access-Control-Allow-Origin » attendu est présent. Si la réponse indique un code d'état autre que 204 No Content, cela peut signaler un problème avec la réponse côté serveur ou son interprétation par le client.

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