Zoeken…


Schakel CORS in express.js in

Omdat node.js vaak wordt gebruikt om API te bouwen, kan een goede CORS-instelling een levensreddende oplossing zijn als u de API vanuit verschillende domeinen wilt kunnen aanvragen.

In het voorbeeld zullen we het instellen voor de bredere configuratie (autoriseer alle verzoektypen vanuit elk domein.

In uw server.js na het initialiseren van 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();
    });
});

Gewoonlijk wordt het knooppunt achter een proxy op productieservers uitgevoerd. Daarom is de reverse proxy-server (zoals Apache of Nginx) verantwoordelijk voor de CORS-configuratie.

Om dit scenario gemakkelijk aan te passen, is het mogelijk om node.js CORS alleen in te schakelen wanneer het in ontwikkeling is.

Dit kan eenvoudig worden gedaan door NODE_ENV controleren:

const app = express();

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow