Probador de CORS
Prueba y diagnostica los encabezados de Cross-Origin Resource Sharing (CORS) para cualquier URL
URLs de ejemplo para probar
Entendiendo CORS
¿Qué es CORS?
Cross-Origin Resource Sharing (CORS) es un mecanismo de seguridad que permite a una página web de un origen solicitar recursos de un origen diferente. Sin CORS, los navegadores bloquean este tipo de solicitudes de origen cruzado de forma predeterminada para prevenir vulnerabilidades de seguridad.
Cómo funciona CORS
Cuando un navegador realiza una solicitud de origen cruzado, envía un encabezado Origin. El servidor debe responder con el encabezado Access-Control-Allow-Origin adecuado. Para solicitudes no simples, el navegador primero envía una solicitud preflight OPTIONS para verificar si la solicitud real está permitida.
Encabezados clave de CORS
Access-Control-Allow-Origin especifica los orígenes permitidos. Access-Control-Allow-Methods enumera los métodos HTTP permitidos. Access-Control-Allow-Headers define los encabezados de solicitud permitidos. Access-Control-Allow-Credentials indica si se permiten las cookies.
Depuración de errores CORS
Los errores de CORS aparecen en la consola del navegador cuando se bloquea una solicitud de origen cruzado. Verifica que el servidor incluya los encabezados CORS correctos. Para las API, asegúrate de que el servidor permita tu origen, los métodos requeridos y cualquier encabezado personalizado que envíes.
Probador de CORS
Prueba y diagnostica los encabezados de Cross-Origin Resource Sharing (CORS) para cualquier URL
Características
- 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
Cómo usar
- Introduce la URL que deseas probar en el campo de entrada o selecciona una de las URLs de ejemplo proporcionadas para pruebas rápidas.
- Elige el método HTTP (GET, POST, etc.) y, opcionalmente, añade encabezados personalizados en la sección de opciones avanzadas.
- Haz clic en 'Probar CORS' para enviar una solicitud de origen cruzado y ver los resultados detallados, incluidos todos los encabezados CORS y sus valores.
Consejos y buenas prácticas
- 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.
Preguntas frecuentes
¿Qué es CORS y por qué es importante para los desarrolladores web?
CORS (Cross-Origin Resource Sharing) es una característica de seguridad del navegador que controla qué páginas web pueden realizar solicitudes a un dominio diferente al que sirvió la página. Es importante porque las aplicaciones web modernas frecuentemente necesitan llamar a API en distintos dominios y, sin una configuración CORS adecuada, esas solicitudes serán bloqueadas por el navegador. Comprender CORS es esencial para crear aplicaciones que interactúan con API de terceros o microservicios.
¿Por qué obtengo un error CORS aunque la API funciona en Postman o curl?
CORS es una política de seguridad aplicada por el navegador, no una restricción del lado del servidor. Herramientas como Postman y curl omiten CORS por completo porque no son navegadores y no aplican la política del mismo origen. El navegador comprueba específicamente los encabezados CORS en la respuesta del servidor y bloquea la solicitud si faltan o son incorrectos. Por eso una API puede funcionar perfectamente en Postman pero fallar en una aplicación de navegador.
¿Qué es una solicitud preflight y cuándo la envía el navegador?
Una solicitud preflight es una solicitud OPTIONS que el navegador envía automáticamente antes de la solicitud real para comprobar si el servidor permite la solicitud de origen cruzado. El navegador envía un preflight para solicitudes que utilizan métodos distintos de GET, HEAD o POST, o que incluyen encabezados personalizados, o que utilizan valores de Content-Type distintos de application/x-www-form-urlencoded, multipart/form-data o text/plain. El servidor debe responder con los encabezados CORS adecuados para permitir que la solicitud real continúe.
¿Qué significa Access-Control-Allow-Origin: * y es seguro?
El valor comodín * significa que el servidor permite solicitudes desde cualquier origen. Aunque resulta cómodo para API públicas, puede ser un riesgo de seguridad para API privadas que manejan datos sensibles. Cuando se usa *, el servidor no puede establecer también Access-Control-Allow-Credentials a true. Para API que requieren autenticación, debes especificar los orígenes permitidos exactos en lugar de usar el comodín.
¿Cómo puedo solucionar errores CORS en mi servidor?
Para solucionar los errores CORS, debes configurar tu servidor para que incluya los encabezados CORS adecuados en sus respuestas. Como mínimo, añade Access-Control-Allow-Origin con un comodín (*) o el origen específico que realiza la solicitud. Para solicitudes no simples, añade también Access-Control-Allow-Methods y Access-Control-Allow-Headers. La mayoría de los frameworks web tienen paquetes de middleware CORS que simplifican esta configuración, como cors para Express.js, django-cors-headers para Django o rack-cors para Ruby on Rails.
¿Esta herramienta realmente realiza solicitudes de origen cruzado reales?
Sí, esta herramienta realiza solicitudes fetch reales desde tu navegador a la URL que especifiques, lo que significa que la política CORS del navegador se aplica plenamente. Si el servidor de destino no incluye encabezados CORS, el navegador bloqueará la respuesta y la herramienta mostrará un estado de CORS bloqueado. Esto te ofrece una imagen precisa de cómo se comportaría tu aplicación de navegador al realizar la misma solicitud.