"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que meu aplicativo React recebe um erro CORS ao acessar uma API de subdomínio: \"failed to access subdomain from main domain: No \'Access-Control-Allow-Origin\'\"?

Por que meu aplicativo React recebe um erro CORS ao acessar uma API de subdomínio: \"failed to access subdomain from main domain: No \'Access-Control-Allow-Origin\'\"?

Publicado em 23/12/2024
Navegar:454

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

Compreendendo os erros do CORS: 'falha ao acessar o subdomínio do domínio principal: Não'Access-Control-Allow-Origin''

Compartilhamento de recursos de origem cruzada (CORS) é um mecanismo que permite que diferentes domínios interajam entre si. Quando um servidor API é executado em um subdomínio e um aplicativo React opera no domínio principal, podem ocorrer erros de CORS, como o erro "falha ao acessar o subdomínio do domínio principal: nenhum erro 'Access-Control-Allow-Origin'". ]

Investigando o problema

Inspecione a solicitação de simulação no Chrome DevTools para verificar respostas em cache e solicitações de simulação. Execute a solicitação de comprovação usando uma ferramenta como curl, lembrando de adicionar a opção -i para gerar os cabeçalhos de resposta.

Análise de caso

  • Caso 1: Este abordagem utiliza a configuração padrão do CORS, que permite uma origem curinga. No entanto, os testes revelam que ele funciona corretamente.
  • Caso 2: Personalizar as origens, métodos e cabeçalhos permitidos também é bem-sucedido.
  • Caso 3: O manuseio manual de cabeçalhos CORS é outra solução viável.
Resolvendo o Problema

Configuração incorreta no grupo de destino do AWS Load Balancer (com base na solução do OP)

A causa raiz desse problema específico foi uma configuração incorreta no grupo de destino do AWS Load Balancer. O protocolo do grupo-alvo foi definido como HTTPS, embora os certificados SSL apropriados não tenham sido fornecidos. A correção do protocolo resolveu o problema.

Dicas de depuração

    Desative o cache no Chrome DevTools para evitar respostas de simulação em cache.
  • Envie solicitações de simulação diretamente ao seu serviço para eliminar potencial interferência de proxy.
  • Imprima o buffer de solicitação (por exemplo, usando httputil.DumpRequest) para depuração propósitos.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3