Ricerca…


Abilita CORS in express.js

Poiché node.js viene spesso utilizzato per creare API, l'impostazione CORS corretta può essere un salvataggio se si desidera poter richiedere l'API da domini diversi.

Nell'esempio, lo configureremo per la configurazione più ampia (autorizza tutti i tipi di richieste da qualsiasi dominio.

Nel server.js dopo l'inizializzazione di 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();
    });
});

Di solito, il nodo viene eseguito dietro un proxy sui server di produzione. Pertanto il server proxy inverso (come Apache o Nginx) sarà responsabile della configurazione di CORS.

Per adattare convenientemente questo scenario, è possibile abilitare solo node.js CORS quando è in fase di sviluppo.

Questo è fatto facilmente controllando NODE_ENV :

const app = express();

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow