Por qué CORS existe en el navegador
Los navegadores aplican la política de mismo origen para evitar que sitios maliciosos lean datos sensibles de otros dominios. CORS relaja está restricción de forma controlada permitiendo que los servidores declaren que orígenes, métodos y encabezados están permitidos. Sin encabezados CORS, cualquier fetch o XMLHttpRequest cross-origin será bloqueado, incluso si el servidor proceso la peticion correctamente.
Entendiendo los encabezados CORS
El encabezado Access-Control-Allow-Origin específica orígenes de confianza. Access-Control-Allow-Methods lista los métodos 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 estándar y omiten el paso preflight. Cualquier peticion que usé otros métodos, encabezados personalizados o tipos de contenido no estándar 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 prácticas
Evita usar orígenes comodin en producción; establece una lista blanca de dominios específicos. Nunca combines orígenes 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.





