Recherche…


Activer CORS dans express.js

Comme node.js est souvent utilisé pour créer une API, un paramètre CORS correct peut vous sauver la vie si vous souhaitez pouvoir demander l'API à différents domaines.

Dans l'exemple, nous allons le configurer pour la configuration plus large (autoriser tous les types de requêtes à partir de n'importe quel domaine).

Dans votre server.js après initialisation 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();
    });
});

Généralement, le noeud est exécuté derrière un proxy sur les serveurs de production. Par conséquent, le serveur proxy inverse (tel qu'Apache ou Nginx) sera responsable de la configuration CORS.

Pour adapter facilement ce scénario, il est possible d'activer uniquement le fichier node.js CORS lorsqu'il est en développement.

Cela se fait facilement en cochant NODE_ENV :

const app = express();

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow