Toolram
📖 Glosario técnico

¿Qué es CORS?

Respuesta corta: CORS (Cross-Origin Resource Sharing) es un mecanismo HTTP que permite a un servidor especificar qué orígenes pueden acceder a sus recursos desde un navegador, relajando la Same-Origin Policy.

Explicación detallada

Por defecto, los navegadores bloquean requests entre orígenes distintos (different protocol, domain, or port) por seguridad — esto es la Same-Origin Policy. CORS permite excepciones controladas. El servidor responde con headers `Access-Control-Allow-Origin` indicando qué dominios pueden acceder. Para requests 'no simples' (POST con JSON, custom headers), el navegador hace primero un preflight OPTIONS request. Es responsabilidad del SERVIDOR habilitar CORS, no del cliente.

Ejemplo

Access-Control-Allow-Origin: https://miapp.com\nAccess-Control-Allow-Methods: GET, POST\nAccess-Control-Allow-Headers: Content-Type

Casos de uso comunes

  • API pública consumida desde frontend
  • Microservicios con frontend separado
  • CDN sirviendo recursos a múltiples dominios
  • OAuth flows con redirección

Preguntas frecuentes

¿CORS es problema del cliente o del servidor?

Del servidor. El navegador bloquea por defecto. El servidor debe explícitamente permitir el origen vía headers.

¿Access-Control-Allow-Origin: * es seguro?

Para APIs públicas sin auth: sí. Para APIs con cookies/credentials: NO — el wildcard no permite credentials. Especificar dominios concretos.

¿Por qué mi POST falla con CORS pero el GET no?

GET son 'simples', no requieren preflight. POST con Content-Type: application/json sí requiere OPTIONS preflight con headers permitidos.

Artículos y herramientas relacionadas