Saltar al contenido

Cross-Origin Resource Sharing

CORS controla el acceso del navegador a respuestas de otro origen. No sustituye el inicio de sesión ni la comprobación de permisos de la API.

También conocido comoCORS
APIs y contratos de datos

Permitir que otro origen lea respuestas

Cross-Origin Resource Sharing, o CORS, es un mecanismo de cabeceras HTTP. El servidor indica desde qué otros orígenes puede acceder a sus respuestas el código del navegador. Un origen incluye protocolo, host y puerto. El navegador aplica la regla; CORS no es un inicio de sesión en la API.

Distinguir el portal de la API

Un portal ficticio en https://portal.example quiere leer datos de proyectos desde https://api.example/projects. La API puede permitir el origen del portal mediante Access-Control-Allow-Origin. Según el método y las cabeceras, el navegador pregunta primero con OPTIONS si se permite la llamada real. Esta comprobación previa se llama preflight; no ocurre en todas las llamadas.

En otras llamadas, la solicitud puede llegar al servidor aunque el navegador después no permita al script leer la respuesta. Por tanto, un error CORS no demuestra que no haya ocurrido nada en el servidor.

Si se van a enviar cookies de sesión, también deben concordar los ajustes de credenciales. Estas respuestas requieren un origen explícito en lugar del comodín *; también interviene Access-Control-Allow-Credentials. Las reglas de cookies del navegador siguen vigentes. De forma independiente, la API comprueba identidad y permisos sobre los datos solicitados.

Fuentes