Menu
CoddyTech

Einen anderen Origin zulassen

Teil des Abschnitts REST-APIs der Node.js-Journey von Coddy. Lektion 19 von 25.

Eine Seite auf einem Origin benötigt die Berechtigung, eine API-Antwort von einem anderen Origin zu lesen. Der Browser sendet einen Origin-Request-Header. Die API kann mit Access-Control-Allow-Origin antworten und darin den erlaubten Origin angeben.

if (req.get('origin') === 'https://shop.example.com') {
    res.set('Access-Control-Allow-Origin', 'https://shop.example.com');
}

Der Browser prüft diesen Antwort-Header, bevor er die Antwort für die Seite freigibt. Die API kann die Anfrage trotzdem empfangen: CORS ist keine Anmeldeprüfung. Die Anfragenleiste setzt CORS nicht durch, aber auf ihrem Tab „Headers“ kannst du prüfen, was ein Browser empfangen würde.

req.get('origin') liest den Origin-Header der Anfrage. Bei Header-Namen wird die Groß- und Kleinschreibung ignoriert.

challenge icon

Aufgabe

Einfach

Dies ist ein kleines Übungsprojekt. Die Einrichtung ist bereits vorhanden; bearbeite nur server.js.

Setze in der bereitgestellten GET-Route Allow-Origin nur dann, wenn Origin gleich https://board.example.com ist. Behalte die JSON-Antwort bei. Führe das Projekt aus und sende dann GET /result mit diesem Origin-Header: Der Antwortheader muss übereinstimmen. Bei einem anderen oder fehlenden Origin wird kein Allow-Origin-Header gesetzt.

Gib im Feld „Headers“ der Anfrageleiste Origin: https://board.example.com ein. Prüfe die Antwortheader, um die Berechtigung zu sehen.

Probier es selbst

import express from 'express';
const app = express();
app.get('/result', (req, res) => {
    res.json({ ok: true });
});
app.listen(3000);

Alle Lektionen in REST-APIs

Übe selbstständig: Express-Playground