Maison  >  Article  >  développement back-end  >  Pourquoi mon application React obtient-elle une erreur CORS lors de l'accès à une API de sous-domaine : \"échec de l'accès au sous-domaine à partir du domaine principal : non \'Access-Control-Allow-Origin\'\" ?

Pourquoi mon application React obtient-elle une erreur CORS lors de l'accès à une API de sous-domaine : \"échec de l'accès au sous-domaine à partir du domaine principal : non \'Access-Control-Allow-Origin\'\" ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 07:59:30888parcourir

Why Does My React App Get a CORS Error When Accessing a Subdomain API:

Comprendre les erreurs CORS : « Échec de l'accès au sous-domaine à partir du domaine principal : non « Access-Control-Allow-Origin »

Partage de ressources d'origine croisée (CORS) est un mécanisme qui permet à différents domaines d'interagir les uns avec les autres. Lorsqu'un serveur API s'exécute sur un sous-domaine et qu'une application React fonctionne sur le domaine principal, des erreurs CORS peuvent se produire, telles que l'erreur « Échec de l'accès au sous-domaine à partir du domaine principal : No 'Access-Control-Allow-Origin' ».

Enquête sur le problème

Inspectez la demande de contrôle en amont dans Chrome DevTools pour vérifier les réponses mises en cache et les demandes de contrôle en amont. Exécutez la requête de contrôle en amont à l'aide d'un outil tel que curl, en n'oubliant pas d'ajouter l'option -i pour afficher les en-têtes de réponse.

Analyse de cas

  • Cas 1 : Ce Cette approche utilise la configuration CORS par défaut, qui active une origine générique. Cependant, les tests révèlent qu'il fonctionne correctement.
  • Cas 2 : La personnalisation des origines, des méthodes et des en-têtes autorisés s'avère également réussie.
  • Cas 3 : La gestion manuelle des en-têtes CORS est une autre solution viable.

Résolution du problème

Mauvaise configuration dans le groupe cible AWS Load Balancer (basé sur la solution OP)

La cause première de ce problème particulier était une mauvaise configuration dans le groupe cible AWS Load Balancer. Le protocole du groupe cible a été défini sur HTTPS même si les certificats SSL appropriés n'ont pas été fournis. La correction du protocole a résolu le problème.

Conseils de débogage

  • Désactivez la mise en cache dans Chrome DevTools pour éviter les réponses de contrôle en amont mises en cache.
  • Envoyez directement les demandes de contrôle en amont à votre service pour éliminer interférence potentielle du proxy.
  • Imprimez le tampon de requête (par exemple, en utilisant httputil.DumpRequest) à des fins de débogage.

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