CORS explicado

Guía completa de Cross-Origin Resource Sharing — cómo funciona, cada encabezado explicado y errores comunes con soluciones.

Descripción general

Que es CORS?

Cross-Origin Resource Sharing (CORS) es un mecanismo basado en encabezados HTTP que permite a un servidor indicar cualquier origen (dominio, esquema o puerto) distinto al suyo desde el cual un navegador deberia permitir la carga de recursos. Los navegadores aplican por defecto la politica de mismo origen, que impide que las paginas web realicen solicitudes a un origen diferente del que sirvio la pagina.

La politica de mismo origen

Dos URLs tienen el mismo origen si comparten el mismo esquema (http/https), host y puerto. Por ejemplo, https://app.example.com y https://api.example.com son origenes diferentes porque el host difiere. La politica de mismo origen evita que un sitio malicioso lea datos sensibles de otro sitio; CORS es el mecanismo que relaja esta restriccion de manera controlada.

Solicitudes simples vs. Preflight

Una "solicitud simple" usa GET, HEAD o POST con solo encabezados seguros de CORS y no activa un preflight. Todas las demas solicitudes de origen cruzado, aquellas que usan metodos como PUT o DELETE, o que incluyen encabezados como Authorization, activan un preflight: el navegador primero envia una solicitud OPTIONS para pedir permiso al servidor antes de enviar la solicitud real.

Cómo funciona CORS

Solicitud simple

Navegador
GET /api/data
Origin: https://app.example.com
Servidor
200 OK
Access-Control-Allow-Origin: *
Respuesta compartida con JS

Solicitud de verificación previa

Navegador
OPTIONS /api/data
Access-Control-Request-Method: DELETE
Servidor
204 No Content
Access-Control-Allow-Methods: DELETE
Navegador
DELETE /api/data
Origin: https://app.example.com
Respuesta compartida con JS

Encabezados CORS

Mostrando 10 de 10

Errores comunes

Mostrando 8 de 8

Guías relacionadas

Pruébalo en RequestDock

Envía solicitudes HTTP reales e inspecciona las respuestas — directamente en tu navegador.