Szukaj…


Włącz CORS w express.js

Ponieważ node.js jest często używany do budowania API, prawidłowe ustawienie CORS może być ratowaniem życia, jeśli chcesz mieć możliwość żądania API z różnych domen.

W tym przykładzie skonfigurujemy go dla szerszej konfiguracji (autoryzujemy wszystkie typy żądań z dowolnej domeny.

W pliku server.js po zainicjowaniu ekspresowego:

// 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();
    });
});

Zazwyczaj węzeł jest uruchamiany za serwerem proxy na serwerach produkcyjnych. Dlatego odwrotny serwer proxy (taki jak Apache lub Nginx) będzie odpowiedzialny za konfigurację CORS.

Aby wygodnie dostosować ten scenariusz, możliwe jest włączenie CORS node.js tylko wtedy, gdy jest on w fazie rozwoju.

Można to łatwo zrobić, sprawdzając NODE_ENV :

const app = express();

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow