Testador de CORS
Teste e diagnostique cabeçalhos Cross-Origin Resource Sharing (CORS) para qualquer URL
URLs de exemplo para testar
Entendendo o CORS
O que é CORS?
Cross-Origin Resource Sharing (CORS) é um mecanismo de segurança que permite que uma página web de uma origem solicite recursos de uma origem diferente. Sem o CORS, os navegadores bloqueiam essas requisições de origem cruzada por padrão para evitar vulnerabilidades de segurança.
Como o CORS funciona
Quando um navegador faz uma requisição de origem cruzada, ele envia um cabeçalho Origin. O servidor deve responder com o cabeçalho Access-Control-Allow-Origin apropriado. Para requisições não simples, o navegador primeiro envia uma requisição OPTIONS preflight para verificar se a requisição real é permitida.
Principais cabeçalhos CORS
Access-Control-Allow-Origin especifica as origens permitidas. Access-Control-Allow-Methods lista os métodos HTTP permitidos. Access-Control-Allow-Headers define os cabeçalhos de requisição permitidos. Access-Control-Allow-Credentials indica se cookies são permitidos.
Depurando erros de CORS
Os erros de CORS aparecem no console do navegador quando uma requisição de origem cruzada é bloqueada. Verifique se o servidor inclui os cabeçalhos CORS corretos. Para APIs, garanta que o servidor permita sua origem, os métodos necessários e quaisquer cabeçalhos personalizados que você envie.
Testador de CORS
Teste e diagnostique cabeçalhos Cross-Origin Resource Sharing (CORS) para qualquer URL
Recursos
- Send real HTTP requests to a target URL and inspect CORS-related headers in the response
- Reports Access-Control-Allow-Origin, Allow-Methods, Allow-Headers, Allow-Credentials, Max-Age
- Tests preflight (OPTIONS) and actual-request behaviour
- Runs in your browser — your request is sent FROM your origin, so the result reflects what your real app would see
- Useful for debugging CORS-blocked production fetches
Como usar
- Insira a URL que deseja testar no campo de entrada ou selecione uma das URLs de exemplo fornecidas para um teste rápido.
- Escolha o método HTTP (GET, POST, etc.) e, opcionalmente, adicione cabeçalhos personalizados na seção de opções avançadas.
- Clique em 'Testar CORS' para enviar uma requisição de origem cruzada e visualize os resultados detalhados, incluindo todos os cabeçalhos CORS e seus valores.
Dicas e Melhores Práticas
- Each test sends a real HTTPS request to the target URL — the URL and your IP are visible to the target server.
- CORS is enforced by the browser, not the server. The server sends headers; the browser decides whether to expose the response to JS.
- For wildcard ACAO (`Access-Control-Allow-Origin: *`), the request will succeed but credentials (cookies) won't be sent — that's the spec.
- Preflight (OPTIONS) is sent only for non-simple requests (custom headers, non-GET/POST methods, JSON body in some cases).
- If the test fails, check the browser devtools Network tab — the actual error message is more detailed than this tool can surface.
Perguntas Frequentes
O que é CORS e por que é importante para desenvolvedores web?
CORS (Cross-Origin Resource Sharing) é um recurso de segurança do navegador que controla quais páginas web podem fazer requisições para um domínio diferente daquele que serviu a página. É importante porque aplicações web modernas frequentemente precisam chamar APIs em domínios diferentes e, sem a configuração adequada de CORS, essas requisições serão bloqueadas pelo navegador. Entender CORS é essencial para criar aplicações que interagem com APIs de terceiros ou microsserviços.
Por que recebo um erro de CORS mesmo que a API funcione no Postman ou curl?
CORS é uma política de segurança aplicada pelo navegador, e não uma restrição do lado do servidor. Ferramentas como Postman e curl ignoram totalmente o CORS porque não são navegadores e não aplicam a política de mesma origem. O navegador verifica especificamente os cabeçalhos CORS na resposta do servidor e bloqueia a requisição se eles estiverem ausentes ou incorretos. É por isso que uma API pode funcionar perfeitamente no Postman, mas falhar em uma aplicação de navegador.
O que é uma requisição preflight e quando o navegador a envia?
Uma requisição preflight é uma requisição OPTIONS que o navegador envia automaticamente antes da requisição real para verificar se o servidor permite a requisição de origem cruzada. O navegador envia um preflight para requisições que usam métodos diferentes de GET, HEAD ou POST, ou que incluem cabeçalhos personalizados, ou que usam valores de Content-Type diferentes de application/x-www-form-urlencoded, multipart/form-data ou text/plain. O servidor deve responder com cabeçalhos CORS apropriados para permitir que a requisição real prossiga.
O que significa Access-Control-Allow-Origin: * e é seguro?
O valor curinga * significa que o servidor permite requisições de qualquer origem. Embora seja conveniente para APIs públicas, pode ser um risco de segurança para APIs privadas que lidam com dados sensíveis. Ao usar *, o servidor também não pode definir Access-Control-Allow-Credentials como true. Para APIs que exigem autenticação, você deve especificar origens permitidas exatas em vez de usar o curinga.
Como posso corrigir erros de CORS no meu servidor?
Para corrigir erros de CORS, você precisa configurar seu servidor para incluir os cabeçalhos CORS apropriados em suas respostas. No mínimo, adicione Access-Control-Allow-Origin com um curinga (*) ou a origem específica solicitante. Para requisições não simples, adicione também Access-Control-Allow-Methods e Access-Control-Allow-Headers. A maioria dos frameworks web possui pacotes de middleware CORS que simplificam essa configuração, como cors para Express.js, django-cors-headers para Django ou rack-cors para Ruby on Rails.
Esta ferramenta realmente faz requisições reais de origem cruzada?
Sim, esta ferramenta faz requisições fetch reais do seu navegador para a URL que você especificar, o que significa que a política CORS do navegador é totalmente aplicada. Se o servidor de destino não incluir cabeçalhos CORS, o navegador bloqueará a resposta e a ferramenta mostrará o status CORS bloqueado. Isso lhe oferece uma visão precisa de como sua aplicação de navegador se comportaria ao fazer a mesma requisição.