CORS: Cross-Origin Resource Sharing

  Desarrollo

CORS es una especificación del W3C que define la forma en la que se pueden permitir llamadas cliente (llamadas a servicios REST por ejemplo) desde un navegador entre dominios diferentes. Es decir, un API con URL de acceso http://api.stl4me.com podría ser utilizada con una llamada AJAX desde una página servida en http://www.otro-dominio.com.

En primer lugar hay que tener en cuenta la implementación de CORS en los navegadores. Mirando en la web caniuse.com vemos que está bastante extendido (sólo Opera Mini no es compatible).

El funcionamiento básico es muy sencillo. En cada petición aparecerá un encabezado «Origin» que indica el dominio de la página desde donde se realiza la petición (http://otro-dominio.com en el ejemplo que indicábamos anteriormente). Para permitir el uso del API, en la respuesta debe indicarse otro encabezado, «Access-Control-Allow-Origin" que replique este mismo valor. De esta forma estamos indicando desde el dominio que ofrece el API que permitimos su uso al dominio que origina la petición. Aunque la respuesta puede ser una lista de dominios permitidos lo más recomendable es devolver sólo el dominio que aparece en el encabezado «Origin» de la petición, a partir de un control interno de los dominios permitidos.

CORS tiene algunos otros usos y algún encabezado más. Para profundizar algo más recomendamos el tutorial «Using CORS» publicado en html5rocks.com.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.