Suche…


Aktivieren Sie CORS in express.js

Da node.js häufig zum Erstellen von APIs verwendet wird, kann die richtige Einstellung von CORS lebensrettend sein, wenn Sie die API von verschiedenen Domänen anfordern möchten.

Im Beispiel richten wir es für die umfassendere Konfiguration ein (autorisieren Sie alle Anforderungstypen von jeder Domäne aus).

In Ihrer server.js nach dem Initialisieren von express:

// Create express server
const app = express();

app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');

    // authorized headers for preflight requests
    // https://developer.mozilla.org/en-US/docs/Glossary/preflight_request
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
    next();

    app.options('*', (req, res) => {
        // allowed XHR methods  
        res.header('Access-Control-Allow-Methods', 'GET, PATCH, PUT, POST, DELETE, OPTIONS');
        res.send();
    });
});

Normalerweise wird der Knoten auf Produktionsservern hinter einem Proxy ausgeführt. Daher ist der Reverse-Proxy-Server (wie Apache oder Nginx) für die CORS-Konfiguration verantwortlich.

Um dieses Szenario bequem anzupassen, ist es möglich, node.js CORS nur während der Entwicklung zu aktivieren.

Dies kann leicht durch Überprüfen von NODE_ENV :

const app = express();

if (process.env.NODE_ENV === 'development') {
    // CORS settings
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow