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.
Aussi dans la bibliothèque
Parsing HTML en PHP : DOMDocument, SimpleXML et cURL pour le web scraping
Internationalisation (i18n) en JavaScript (Node.js) : la bibliothèque i18next
godotenv Go : guide complet avec exemples pratiques
Bibliothèques WebSocket Kotlin pour la création d'applications temps réel dans les applications web
PM2 pour JavaScript (Node.js) : guide complet avec exemples