Permitir otro origen
Parte de la sección API REST del Journey de Node.js de Coddy. Lección 19 de 25.
Una página de un origen necesita permiso para leer una respuesta de una API de otro origen. El navegador envía un encabezado de solicitud Origin. La API puede responder con Access-Control-Allow-Origin indicando el origen permitido.
if (req.get('origin') === 'https://shop.example.com') {
res.set('Access-Control-Allow-Origin', 'https://shop.example.com');
}El navegador comprueba este encabezado de respuesta antes de mostrar la respuesta a la página. Es posible que la API reciba la solicitud de todos modos: CORS no es una comprobación de inicio de sesión. La barra de solicitudes no aplica CORS, pero su pestaña Encabezados te permite inspeccionar lo que recibiría un navegador.
req.get('origin') lee el encabezado Origin de la solicitud. En los nombres de encabezados no se distingue entre mayúsculas y minúsculas.
Desafío
FácilEste es un pequeño proyecto de práctica. Se proporciona la configuración; edita solo server.js.
En la ruta GET proporcionada, establece Allow-Origin solo cuando Origin sea igual a https://board.example.com. Conserva la respuesta JSON. Ejecuta y después envía GET /result con ese encabezado Origin: el encabezado de respuesta debe coincidir. Si Origin es diferente o falta, no se incluirá ningún encabezado Allow-Origin.
En el campo Headers de la barra de solicitudes, introduce Origin: https://board.example.com. Inspecciona los encabezados de respuesta para ver el permiso.
Pruébalo tú mismo
import express from 'express';
const app = express();
app.get('/result', (req, res) => {
res.json({ ok: true });
});
app.listen(3000);
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