Qué significa Error CORS y cómo solucionarlo
Referencia del error
Error CORS
Lenguaje
Severidad
AltaCuándo ocurre
Un error CORS (Cross-Origin Resource Sharing) ocurre cuando un navegador bloquea una solicitud fetch o XMLHttpRequest a un origen diferente porque la respuesta del servidor no incluye el encabezado Access-Control-Allow-Origin requerido.
Posibles soluciones
Configura el servidor API para devolver los encabezados CORS correctos. Para desarrollo, usa un proxy (Next.js rewrites, Vite proxy, etc.) para evitar solicitudes de origen cruzado. Nunca uses extensiones del navegador que deshabiliten CORS como solución de producción.
Errores relacionados
Más detalles
Un error CORS (Cross-Origin Resource Sharing) ocurre cuando un navegador bloquea una solicitud fetch o XMLHttpRequest a un origen diferente porque la respuesta del servidor no incluye el encabezado Access-Control-Allow-Origin requerido. Esta es una función de seguridad del navegador, no un fallo de red.
Por qué ocurre
- •El servidor API no incluye encabezados CORS en sus respuestas.
- •El servidor incluye encabezados CORS pero excluye el origen que realiza la solicitud.
- •El servidor no maneja una solicitud preflight OPTIONS.
- •Se envían credenciales (cookies, encabezados de autenticación) pero el servidor no permite solicitudes con credenciales.
Posibles soluciones
Configura el servidor API para devolver los encabezados CORS correctos. Para desarrollo, usa un proxy (Next.js rewrites, Vite proxy, etc.) para evitar solicitudes de origen cruzado. Nunca uses extensiones del navegador que deshabiliten CORS como solución de producción.
Ejemplos
Código que causa el error
fetch("https://api.other-domain.com/data")
.then(res => res.json())
.then(console.log);Error en la terminal
Access to fetch at 'https://api.other-domain.com/data' from origin 'https://myapp.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Código corregido
// The fix is on the SERVER, not the client.
// The API must return the header: Access-Control-Allow-Origin: *
// or: Access-Control-Allow-Origin: https://myapp.com
// Client-side workaround: proxy through your own backend
fetch("/api/proxy/data").then(res => res.json()).then(console.log);Practica en inglés
¿Cómo le explicarías un CORS Error a un compañero dev? Elige la frase correcta:
"I hit an error...
¿Programando en inglés?
Para arreglar esto, leíste inglés técnico real. Lingua-e tiene ejercicios gratis hechos igual: dailys, code reviews y situaciones reales de trabajo.
Practicar inglés para developers gratis