CORS JavaScript (Node.js) : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Bibliothèque CORS pour JavaScript (Node.js) : Guide complet

1. Qu'est-ce que CORS et pourquoi l'utiliser ?

CORS (Cross-Origin Resource Sharing) est un mécanisme de sécurité implémenté dans les navigateurs qui contrôle l'accès aux ressources (API, polices, scripts) depuis des pages web chargées depuis un domaine différent (origine). Par défaut, les navigateurs bloquent les requêtes HTTP initiées par des scripts (par exemple via fetch ou XMLHttpRequest) si elles sont envoyées vers un domaine différent de celui d'origine de la page. Cela empêche les attaques CSRF (Cross-Site Request Forgery) et les fuites de données.

La bibliothèque cors pour Node.js et Express est un middleware qui permet aux développeurs de configurer et gérer facilement les politiques CORS côté serveur. Au lieu d'écrire manuellement les en-têtes (Access-Control-Allow-Origin, Access-Control-Allow-Methods, etc.) et de gérer les requêtes préliminaires (preflight requests avec la méthode OPTIONS), cette bibliothèque automatise tout le processus. Elle s'intègre dans la chaîne de traitement des requêtes Express et ajoute les en-têtes nécessaires aux réponses.

Pourquoi est-ce nécessaire ? Si vous développez une API Node.js qui sera utilisée par une application front-end (React, Vue, Angular), une application mobile ou un service tiers depuis un autre domaine (par exemple api.monsite.com pour app.monsite.com), vous devez impérativement configurer CORS. Sans cela, le navigateur bloquera simplement les requêtes et l'utilisateur verra une erreur dans la console. La bibliothèque cors rend cette configuration flexible, sécurisée et simple.

2. Installation

L'installation se fait via le gestionnaire de paquets npm (Node Package Manager). Assurez-vous d'avoir Node.js et npm installés.

npm install cors

Après l'installation, le paquet sera ajouté dans node_modules et une entrée apparaîtra dans le fichier package.json.

Si vous utilisez yarn :

yarn add cors

3. Démarrage rapide — exemple minimal fonctionnel

La façon la plus simple d'utiliser CORS est de l'activer pour toutes les requêtes. Cela convient pour le développement ou les API publiques où l'accès est autorisé depuis n'importe quel domaine.

const express = require('express');
const cors = require('cors');

const app = express();

// Active CORS pour toutes les routes
app.use(cors());

app.get('/api/data', (req, res) => {
    res.json({ message: 'Cette réponse est autorisée pour toutes les origines !' });
});

app.listen(3000, () => {
    console.log('Serveur démarré sur le port 3000');
});

Dans cet exemple, toute requête depuis n'importe quel domaine (par exemple http://localhost:8080 ou https://exemple.com) vers /api/data sera traitée avec succès. Le navigateur ne bloquera pas la réponse.

4. Méthodes/fonctions/classes principales

La bibliothèque cors fournit une fonction principale — cors(options) — qui retourne une fonction middleware. Cependant, les paramètres sont transmis via un objet options, offrant une grande flexibilité. Voici 8 options et méthodes clés.

4.1. cors() — configuration de base (tout est autorisé)

Signature : cors(options?: CorsOptions)

Fonctionnement : Crée un middleware qui ajoute les en-têtes CORS à la réponse. Sans arguments, il autorise l'accès depuis n'importe quelle origine (*), toutes les méthodes et tous les en-têtes.

Recommendations