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).