Qué es un origen
Parte de la sección API REST del Journey de Node.js de Coddy. Lección 18 de 25.
Normalmente, un navegador permite que el JavaScript de una página lea las respuestas de API de su propio origen. Esta regla del mismo origen impide que una página lea libremente los datos de otro sitio. CORS, uso compartido de recursos entre orígenes, permite que un servidor dé permiso a otro origen mediante encabezados de respuesta.
Una página del navegador tiene un origen: su esquema, host y puerto en conjunto. Las distintas rutas del mismo origen pueden compartir una API sin permiso de CORS. Si cambia el host, el esquema o el puerto, se trata de un origen diferente.
new URL('https://board.example.com/tasks').origin;
// 'https://board.example.com'
new URL('https://board.example.com/help').origin;
// el mismo origenURL es una clase integrada que divide una dirección en partes con nombre. Su propiedad origin excluye la ruta y la consulta. La dirección de página proporcionada está fijada en el código inicial. Este ejercicio compara orígenes; el siguiente paso permitirá que un servidor conceda permiso entre ellos.
El encabezado Origin de una solicitud ya contiene este valor de origen; en la siguiente lección leeremos ese encabezado.
Desafío
FácilEste es un pequeño proyecto de práctica. Se proporciona la configuración; edita solo exercise.js.
Devuelve {"same":true} cuando la dirección proporcionada comparte el origen de la página; de lo contrario, devuelve false. Enviar {"address":"https://board.example.com/api/tasks"} mediante POST a /result da true. Cambiar https por http, el host o el puerto da false. Las direcciones de este ejercicio son URL absolutas válidas.
La solicitud inicial GET /result utiliza el ejemplo proporcionado {"address": "https://board.example.com/api/tasks"}. Usa POST /result con un cuerpo JSON para probar otras entradas.
Pruébalo tú mismo
const page = 'https://board.example.com/tasks';
export function exercise({ address }) {
return { same: address === page };
}
Todas las lecciones de API REST
1Recursos y verbos
Recursos y URLCrear con POST4Navegadores, versiones y configuración
Qué es un origenPermitir otro origenCORSUna página que llama a la APIPractica por tu cuenta: Playground de Express