Por que CORS existe en el navegador
Los navegadores aplican la politica de mismo origen para evitar que sitios maliciosos lean datos sensibles de otros dominios. CORS relaja esta restriccion de forma controlada permitiendo que los servidores declaren que origenes, metodos y encabezados estan permitidos. Sin encabezados CORS, cualquier fetch o XMLHttpRequest cross-origin sera bloqueado, incluso si el servidor proceso la peticion correctamente.
Entendiendo los encabezados CORS
El encabezado Access-Control-Allow-Origin especifica origenes de confianza. Access-Control-Allow-Methods lista los metodos HTTP permitidos como GET, POST y DELETE. Access-Control-Allow-Headers declara que encabezados de peticion personalizados se aceptan. Access-Control-Expose-Headers controla que encabezados de respuesta puede leer el navegador, y Access-Control-Max-Age cachea resultados preflight para reducir latencia.
Peticiones simples vs preflight
Las peticiones simples usan GET, HEAD o POST con tipos de contenido estandar y omiten el paso preflight. Cualquier peticion que use otros metodos, encabezados personalizados o tipos de contenido no estandar activa una llamada OPTIONS preflight. El servidor debe responder al preflight con los encabezados CORS correctos antes de que el navegador envie la peticion real.
Errores comunes y mejores practicas
Evita usar origenes comodin en produccion; establece una lista blanca de dominios especificos. Nunca combines origenes comodin con credenciales porque los navegadores rechazaran la respuesta. Establece un Max Age razonable para reducir la sobrecarga preflight sin cachear politicas obsoletas. Siempre prueba CORS desde el origen del cliente real.





