EN

CORS explicado sin dolor de cabeza

Por qué el navegador bloquea algunas peticiones, qué hacen las cabeceras Access-Control y cómo resolver errores de CORS en desarrollo.

CORS (Cross-Origin Resource Sharing) es un mecanismo de seguridad del navegador. Impide que JavaScript en https://app.ejemplo.com llame a https://api.otro-dominio.com salvo que el servidor de la API lo autorice explícitamente.

Cabeceras que debes conocer

  • Access-Control-Allow-Origin — qué orígenes pueden acceder.
  • Access-Control-Allow-Methods — GET, POST, etc. permitidos.
  • Access-Control-Allow-Headers — cabeceras custom permitidas (Authorization, Content-Type).
  • Access-Control-Allow-Credentials — si se envían cookies o tokens en credenciales.

Las peticiones "preflight" (OPTIONS) aparecen cuando el navegador necesita permiso antes del POST real con JSON. Configura el backend para responder OPTIONS correctamente; no desactives CORS en producción con wildcards inseguros.