Debugger de Erros CORS — Ferramenta Online Gratuita
Diagnostique erros de Cross-Origin Resource Sharing e obtenha código de correção pronto para uso em 10 frameworks backend.
O Que é CORS?
Cross-Origin Resource Sharing (CORS) é um mecanismo de segurança do navegador que restringe páginas web de fazer requisições para um domínio diferente do que serviu a página. Quando seu frontend (ex.: https://meuapp.com) faz uma chamada de API para um domínio diferente (ex.: https://api.exemplo.com), o navegador primeiro verifica se o servidor permite explicitamente essa requisição.
Se o servidor não incluir os headers Access-Control-Allow-Origin adequados na sua resposta, o navegador bloqueia a requisição e lança um erro CORS. É importante notar que o CORS é aplicado pelo navegador — a requisição ainda chega ao seu servidor, mas o navegador impede que o JavaScript leia a resposta.
Erros CORS Comuns
- Header 'Access-Control-Allow-Origin' ausente: A resposta do servidor não contém o header CORS. Correção: adicione o header à resposta do seu servidor.
- Requisição preflight não passa: Para requisições com headers personalizados ou métodos não simples (PUT, DELETE), os navegadores enviam uma requisição preflight OPTIONS. Seu servidor deve responder corretamente a essa requisição.
- Flag de credentials: Ao usar cookies ou headers Authorization com
withCredentials: true, o servidor deve retornarAccess-Control-Allow-Credentials: truee a origem deve ser específica (não*). - Incompatibilidade de headers permitidos: Se sua requisição inclui um header não listado em
Access-Control-Allow-Headers, o preflight falha.
Como Corrigir CORS Por Framework
Use a ferramenta acima para gerar a correção exata para seu backend. O princípio geral é o mesmo em todos os frameworks: configure seu servidor para retornar os headers Access-Control-Allow-* apropriados. Para produção, sempre especifique as origens permitidas exatas em vez de usar wildcard (*), especialmente ao lidar com requisições autenticadas.
Perguntas Frequentes sobre CORS
O que causa um erro CORS?
Um erro CORS ocorre quando o navegador bloqueia uma requisição cross-origin porque a resposta do servidor não contém o header Access-Control-Allow-Origin. O navegador aplica a Same-Origin Policy — qualquer requisição de um domínio, porta ou protocolo diferente aciona uma verificação preflight CORS. É importante notar que o CORS é aplicado apenas pelo navegador; a requisição ainda chega ao seu servidor, mas o navegador impede que o JavaScript leia a resposta.
Como corrigir CORS no Express.js?
Instale o pacote cors (npm install cors) e adicione app.use(cors()) para permitir todas as origens, ou especifique origens exatas: app.use(cors({ origin: 'https://seudominio.com' })). Para requisições com cookies ou headers Authorization, defina credentials: true e nunca use wildcard (*) como origem permitida — você deve especificar o domínio exato.
O que é uma requisição preflight CORS?
Um preflight é uma requisição HTTP OPTIONS que o navegador envia automaticamente antes de requisições cross-origin que usam headers personalizados ou métodos HTTP não simples (PUT, DELETE, PATCH). O servidor deve responder ao OPTIONS com os headers Access-Control-Allow-Methods e Access-Control-Allow-Headers, além de um status 200 ou 204. Se o preflight falhar, a requisição real nunca é enviada.
Por que o CORS funciona no Postman mas não no navegador?
O CORS é um mecanismo de segurança do navegador — ele não se aplica a comunicação servidor-para-servidor ou ferramentas como Postman, curl ou clientes REST. O Postman envia requisições diretamente sem aplicar a Same-Origin Policy, então a requisição funciona. No navegador, o JavaScript é impedido de ler respostas cross-origin a menos que o servidor as permita explicitamente via headers CORS.
Ferramentas Relacionadas para Desenvolvedores
- Explorador de Códigos de Status HTTP — consulte qualquer código de status HTTP com exemplos em Express e Python
- Decodificador e Inspetor de JWT — decodifique tokens JWT, inspecione claims e contagem regressiva de expiração
- Gerador de Docker Compose — gere docker-compose.yml com networks e volumes
- Inspetor de Arquivos .ENV — escaneie arquivos de ambiente em busca de secrets expostos e gere .env.example
- Ver todas as ferramentas gratuitas para desenvolvedores