Node.js: abilitare CORS in ExpressJS

In questo articolo vedremo come abilitare CORS nelle route di un'applicazione in ExpressJS.

Node.js di Gabriele Romanato

In questo articolo vedremo come abilitare CORS nelle route di un'applicazione in ExpressJS.

CORS (Cross-Origin Resource Sharing) permette la condivisione di risorse tramite API AJAX anche se tali risorse risiedono su domini diversi.

Per impostazione predefinita, i browser applicano la policy della same origin, ossia una richiesta AJAX è ammessa solo verso endpoint che si trovano sullo stesso dominio. Impostando gli opportuni header HTTP possiamo abilitare CORS e fare in modo che le nostre API possano essere condivise da altri domini.

Possiamo usare una funzione middleware in ExpressJS impostando gli header HTTP richiesti tramite il metodo header() ( o set() ) dell'oggetto response.


app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS,POST,PUT');
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
    next();
});

In questo modo ogni route avrà tali header HTTP già impostati al momento di restituire un output (solitamente JSON).