Digite para filtrar os verbetes do Glossário.

    Desenvolvimento web · Vibe Coding: Do Zero ao MVP

    O que é CORS?

    CORS permite ao navegador ler respostas de outra origem quando o servidor autoriza. Entenda preflight, cabeçalhos e chamadas autenticadas com cookies.

    Também chamado de: Cross-Origin Resource Sharing, compartilhamento de recursos entre origens

    Quando o navegador pode ler outra origem

    CORS significa Cross-Origin Resource Sharing, ou compartilhamento de recursos entre origens. É um mecanismo baseado em cabeçalhos HTTP que permite ao servidor autorizar o acesso a respostas por páginas de outras origens. Em chamadas como as feitas com fetch, o navegador confere essa autorização para disponibilizar a resposta ao código da página.

    Imagine uma interface publicada em https://app.example.com que consulta https://api.example.com. Como os hosts diferem, as origens também diferem. A API precisa enviar a autorização adequada para que o JavaScript da interface possa ler a resposta.

    Uma chamada funcionar no terminal e falhar no navegador pode indicar essa diferença de ambiente. Ferramentas de terminal não aplicam a política de mesma origem da página. Ainda assim, a mensagem de erro precisa ser investigada, pois uma falha no servidor também pode resultar em resposta sem os cabeçalhos esperados.

    Leitura de resposta entre origensO navegador confere a autorização enviada pela API antes de disponibilizar a resposta ao código da página.FrontendAPIBackendDados
    O navegador confere a autorização enviada pela API antes de disponibilizar a resposta ao código da página.

    A autorização aparece na resposta

    O cabeçalho Access-Control-Allow-Origin pode conter uma origem específica ou * nas situações permitidas. Ele não aceita uma lista de origens separadas por vírgula. Quando o serviço atende várias origens autorizadas, precisa selecionar o valor adequado para cada resposta.

    Autorização para a origem da interfacehttp
    Access-Control-Allow-Origin: https://app.example.com
    Vary: Origin

    O exemplo mostra campos de uma resposta cuja autorização varia conforme a origem da chamada. Vary: Origin orienta caches a considerar essa diferença. O servidor deve comparar a origem recebida com suas permissões, sem simplesmente refletir qualquer valor enviado.

    O que é preflight

    Algumas chamadas exigem uma verificação prévia, chamada de preflight. O navegador envia OPTIONS com a origem, o método pretendido e os cabeçalhos relevantes. A resposta precisa autorizar a combinação antes de a chamada principal seguir.

    Um envio JSON com Content-Type: application/json normalmente exige essa verificação em uma chamada entre origens. Outros envios podem acontecer sem preflight, conforme o método e os cabeçalhos utilizados. Para investigar a diferença, compare esses campos na chamada efetiva, sem concluir apenas pela presença de um corpo.

    Credenciais exigem configuração específica

    Chamadas com cookies precisam respeitar tanto a configuração de credenciais do cliente quanto os atributos e as políticas de cookies. Para expor uma resposta a uma chamada com credenciais, a API deve autorizar a origem explicitamente e enviar Access-Control-Allow-Credentials: true. O curinga * não atende a esse caso.

    CORS não autentica a chamada nem concede permissão para executar ações no backend. Também não deve ser tratado como proteção geral contra chamadas de outros programas ou contra CSRF. Esses controles têm responsabilidades próprias.

    Como localizar a configuração incorreta

    Confira a origem real da página, o preflight quando houver e os cabeçalhos da resposta principal. Respostas de erro e redirecionamentos também podem passar por componentes diferentes, que precisam ser considerados na investigação.

    Usar mode: 'no-cors' não libera a leitura do JSON esperado. Esse modo pode produzir uma resposta opaca, indisponível para a interpretação pretendida. O ajuste deve corresponder à arquitetura da integração e à origem web autorizada pelo serviço.

    Dúvidas frequentes

    Perguntas frequentes sobre CORS

    Access-Control-Allow-Origin aceita várias origens em uma lista?
    O campo aceita uma origem específica ou o curinga nas condições permitidas. Para várias origens autorizadas, o servidor seleciona a correspondente à chamada e configura o cache adequadamente.
    Um erro de CORS significa que nada chegou ao servidor?
    Nem sempre. Chamadas sem preflight podem chegar e produzir efeitos antes de o navegador recusar a leitura. Quando o preflight falha, a chamada principal não segue.
    CORS substitui autenticação?
    CORS controla o acesso da página à resposta no navegador. O serviço ainda precisa autenticar e autorizar as operações, inclusive para clientes fora do navegador.
    no-cors resolve uma API cujo JSON não consigo ler?
    Esse modo não concede leitura irrestrita. A resposta pode ficar opaca para o JavaScript. A configuração precisa permitir o acesso necessário na integração real.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Vibe Coding: Do Zero ao MVP

    CORS participa da comunicação quando o frontend precisa ler respostas de uma API em outra origem.

    Conhecer a formação
    Capa da Formação Vibe Coding do Zero ao MVP

    Fontes consultadas

    Referências deste verbete

    Este verbete ajudou você?

    Planos Promovaweb

    Tire seus projetos do papel

    O Plano Martech cobre automação e atendimento. O Plano IA Makers acrescenta desenvolvimento com IA, enquanto o Plano Founders trata de gestão de negócios. Todos são anuais.

    Plano Martech

    Para conectar automação, marketing e atendimento com infraestrutura própria.

    R$ 897

    R$ 597/ano

    • Grade de automação, atendimento, marketing e análise de indicadores
    • Instalador Exclusivo Promovaweb
    • n8n, Evolution API, Chatwoot e Mautic
    • Trilha DevOps incluída
    • Encontros ao vivo (terça e quinta)
    • Comunidade e acompanhamento
    Conhecer o plano

    Plano Founders

    Plano anual para fazer um projeto de tecnologia avançar, com 90 dias de mentoria intensiva. R$ 1.997 à vista ou até 10x de R$ 219 no cartão.

    R$ 1.997/ano

    • 12 meses de acesso ao Founders
    • 90 dias de mentoria intensiva, um encontro por dia útil
    • Dia de conteúdo (terça e quinta) e War Room (segunda, quarta e sexta)
    • Encontro semanal em grupo após a fase intensiva
    • Formação Vibe Coding incluída no plano anual
    • Consultoria individual de até duas horas (bônus)
    Conhecer o plano