Comment utiliser : Générateur & testeur CORS
- Dans Générer les en-têtes, listez les origines autorisées à appeler votre API (ou autorisez toutes les origines), cochez les méthodes et saisissez les en-têtes de requête envoyés par votre front-end — en général
Content-TypeetAuthorization. - Cochez Autoriser les identifiants uniquement si le navigateur doit envoyer des cookies ou un en-tête Authorization avec
credentials: 'include'. - Choisissez votre plateforme et copiez le code — Express, Nginx, Apache, Netlify, Vercel, Next.js, Workers ou PHP.
- Déployez, puis passez à Tester une URL : saisissez l’URL de l’API et l’origine de la page pour voir si le preflight et la requête réelle passeraient.
Pourquoi les navigateurs bloquent les requêtes
Une page située sur https://app.example.com ne peut lire une réponse de https://api.example.com que si l’API l’autorise explicitement avec des en-têtes CORS. Pour tout ce qui dépasse un simple GET ou un POST de formulaire — corps JSON, en-têtes Authorization, PUT ou DELETE — le navigateur envoie d’abord un preflight : une requête OPTIONS qui demande « cette origine peut-elle utiliser cette méthode et ces en-têtes ? ». Si la réponse est absente ou incorrecte, vous voyez « has been blocked by CORS policy » et votre code ne reçoit jamais la réponse.
| En-tête | Ce qu’il doit contenir |
|---|---|
Access-Control-Allow-Origin | L’origine appelante exacte, ou * (non autorisé avec des identifiants) |
Access-Control-Allow-Methods | La méthode de la requête réelle (preflight uniquement) |
Access-Control-Allow-Headers | Chaque en-tête de requête non standard, comme Authorization ou Content-Type: application/json |
Access-Control-Allow-Credentials | true lorsque des cookies ou des identifiants sont envoyés |
Access-Control-Max-Age | Durée pendant laquelle le navigateur peut mettre en cache la réponse du preflight |
Vary: Origin | Nécessaire lorsque l’origine autorisée change selon la requête, pour que les caches ne servent pas la réponse d’une origine à une autre |
Fonctionnement du testeur
Notre serveur envoie la requête avec un en-tête Origin et, si le navigateur en aurait besoin, un preflight OPTIONS avec Access-Control-Request-Method et -Headers — exactement comme Chrome ou Firefox. Il vérifie ensuite la réponse selon les règles CORS appliquées par les navigateurs. Les serveurs qui n’autorisent que certaines adresses IP ou qui exigent des cookies peuvent répondre différemment aux vrais utilisateurs. Voir aussi : Vérificateur d’en-têtes HTTP, Testeur d’API, Vérificateur d’en-têtes de sécurité.
Aussi recherché comme : générateur cors, testeur cors, vérificateur cors, blocked by cors policy, access-control-allow-origin, test preflight cors, cors express, cors nginx.
Outils complémentaires : Générateur & testeur CORS
- Générateur CSP — Indiquez ce que charge votre site (scripts, styles, images, polices, analytics, intégrations) et obtenez une Content-Security-Policy qui autorise exactement cela, avec des alertes pour les réglages risqués.
- cURL vers code — Collez une commande curl, issue de la documentation d’une API ou de l’option « Copier en tant que cURL » des outils de développement de votre navigateur, et obtenez du code prêt à l’emploi pour six langages, avec les en-têtes, le corps de requête et l’authentification repris à l’identique.
- Générateur de configuration Nginx — Choisissez ce que Nginx doit faire — servir un site statique ou une application SPA, agir en tant que proxy vers une application Node/Python, ou exécuter du code PHP — et cochez les options supplémentaires.
- Analyseur d’en-têtes e-mail — Collez les en-têtes bruts d’un e-mail pour voir tout son parcours : chaque saut entre serveurs avec le temps qu’il a pris, les résultats SPF, DKIM et DMARC, l’IP d’origine et les signaux d’alerte, comme une adresse Reply-To ou Return-Path incohérente.