Was ist ein Origin?
Teil des Abschnitts REST-APIs der Node.js-Journey von Coddy. Lektion 18 von 25.
Ein Browser erlaubt dem JavaScript einer Seite normalerweise, API-Antworten vom eigenen Ursprung zu lesen. Diese Same-Origin-Regel verhindert, dass eine Seite frei die Daten einer anderen Website lesen kann. CORS (Cross-Origin Resource Sharing) ermöglicht es einem Server, einem anderen Ursprung dies mit Response-Headern zu erlauben.
Eine Browserseite hat einen Ursprung: Schema, Host und Port zusammen. Verschiedene Pfade auf demselben Ursprung können eine API ohne CORS-Berechtigung gemeinsam nutzen. Ein anderer Host, ein anderes Schema oder ein anderer Port ergibt einen anderen Ursprung.
new URL('https://board.example.com/tasks').origin;
// 'https://board.example.com'
new URL('https://board.example.com/help').origin;
// derselbe UrsprungURL ist eine integrierte Klasse, die eine Adresse in benannte Bestandteile zerlegt. Ihre origin-Eigenschaft lässt den Pfad und die Abfrageparameter weg. Die angegebene Seitenadresse ist im Starter fest vorgegeben. Diese Übung vergleicht Ursprünge; im nächsten Schritt kann ein Server Berechtigungen für den Zugriff über verschiedene Ursprünge hinweg erteilen.
Der Origin-Header einer Anfrage enthält bereits diesen Ursprungswert; in der nächsten Lektion wird dieser Header ausgelesen.
Aufgabe
EinfachDies ist ein kleines Übungsprojekt. Die Einrichtung wird bereitgestellt; bearbeite nur exercise.js.
Gib {"same":true} zurück, wenn die angegebene Adresse denselben Ursprung wie die Seite hat, andernfalls false. Ein POST mit {"address":"https://board.example.com/api/tasks"} an /result ergibt true. Wenn du https, den Hostnamen oder den Port änderst, ergibt sich false. Die Adressen in dieser Übung sind gültige absolute URLs.
Das anfängliche GET /result verwendet das bereitgestellte Beispiel {"address": "https://board.example.com/api/tasks"}. Verwende POST /result mit einem JSON-Body, um andere Eingaben auszuprobieren.
Probier es selbst
const page = 'https://board.example.com/tasks';
export function exercise({ address }) {
return { same: address === page };
}
Alle Lektionen in REST-APIs
1Ressourcen und Verben
Ressourcen und URLsErstellen mit POST4Browser, Versionen und Konfiguration
Was ist ein Origin?Einen anderen Origin zulassenCORSEine Seite, die die API aufruftÜbe selbstständig: Express-Playground