CORS für JavaScript (Node.js): Komplettleitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

CORS-Bibliothek für JavaScript (Node.js): Das vollständige Handbuch

1. Was ist CORS und warum wird es benötigt?

CORS (Cross-Origin Resource Sharing) ist ein Sicherheitsmechanismus, der in Browsern implementiert ist und den Zugriff auf Ressourcen (APIs, Schriftarten, Skripte) von Webseiten steuert, die von einer anderen Domain (Origin) geladen wurden. Standardmäßig blockieren Browser HTTP-Anfragen, die von Skripten initiiert werden (z. B. über fetch oder XMLHttpRequest), wenn diese an eine andere Domain als die der geladenen Seite gerichtet sind. Dies verhindert Angriffe wie CSRF (Cross-Site Request Forgery) und Datenlecks.

Die cors-Bibliothek für Node.js und Express ist eine Middleware, die es Entwicklern ermöglicht, CORS-Richtlinien auf der Serverseite einfach zu konfigurieren und zu verwalten. Anstatt Header manuell zu setzen (Access-Control-Allow-Origin, Access-Control-Allow-Methods usw.) und Preflight-Anfragen (mit der OPTIONS-Methode) selbst zu behandeln, automatisiert diese Bibliothek den gesamten Prozess. Sie integriert sich in die Express-Request-Verarbeitungskette und fügt die erforderlichen Header zu den Antworten hinzu.

Warum ist das wichtig? Wenn Sie eine API mit Node.js entwickeln, die von einer Frontend-Anwendung (React, Vue, Angular), einer mobilen App oder einem externen Dienst von einer anderen Domain aus genutzt wird (z. B. api.meineseite.de für app.meineseite.de), dann müssen Sie CORS unbedingt konfigurieren. Ohne diese Konfiguration blockiert der Browser die Anfragen einfach, und der Benutzer sieht einen Fehler in der Konsole. Die cors-Bibliothek macht diese Einrichtung flexibel, sicher und unkompliziert.

2. Installation

Die Installation erfolgt über den Paketmanager npm (Node Package Manager). Stellen Sie sicher, dass Node.js und npm installiert sind.

npm install cors

Nach der Installation wird das Paket zu node_modules hinzugefügt, und ein Eintrag erscheint in der package.json-Datei.

Wenn Sie yarn verwenden:

yarn add cors

3. Schnellstart – Minimales funktionierendes Beispiel

Der einfachste Weg, CORS zu nutzen, ist die Aktivierung für alle Anfragen. Dies eignet sich für die Entwicklung oder öffentliche APIs, bei denen der Zugriff von jeder Domain erlaubt ist.

const express = require('express');
const cors = require('cors');

const app = express();

// CORS für alle Routen aktivieren
app.use(cors());

app.get('/api/data', (req, res) => {
    res.json({ message: 'Diese Antwort ist für alle Quellen erlaubt!' });
});

app.listen(3000, () => {
    console.log('Server läuft auf Port 3000');
});

In diesem Beispiel wird jede Anfrage von jeder Domain (z. B. von http://localhost:8080 oder https://example.com) an /api/data erfolgreich verarbeitet. Der Browser blockiert die Antwort nicht.

4. Wichtige Methoden/Funktionen/Klassen

Die cors-Bibliothek stellt eine Hauptfunktion bereit – cors(options), die eine Middleware-Funktion zurückgibt. Die Konfiguration erfolgt über ein options-Objekt, was enorme Flexibilität bietet. Hier sind 8 wichtige Optionen und Methoden.

4.1. cors() – Basiskonfiguration (alles erlaubt)

Signatur: cors(options?: CorsOptions)

Funktion: Erstellt eine Middleware, die CORS-Header zur Antwort hinzufügt. Ohne Argumente erlaubt sie den Zugriff von jeder Quelle (*), beliebige Methoden und Header.

Empfehlungen