Skip to content

CORS Builder

Générateur de configuration CORS (Cross-Origin Resource Sharing) pour vos APIs.

🌍 Origins autorisées
📨 Méthodes HTTP
📋 Headers autorisés
📤 Headers exposés
⚙️ Options avancées
Configuration générée
💡 Astuce: Les requêtes simples (GET, POST avec Content-Type standard) n'ont pas besoin de preflight. Les requêtes avec headers personnalisés ou méthodes PUT/DELETE déclenchent un preflight OPTIONS.

Comment fonctionne CORS

Requêtes simples (pas de preflight)

GET /api/data HTTP/1.1
Origin: https://app.example.com

HTTP/1.1 200 OK
Access-Control-Allow-Origin: https://app.example.com

Requêtes avec preflight

OPTIONS /api/data HTTP/1.1
Origin: https://app.example.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: Content-Type, Authorization

HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Max-Age: 86400

Headers CORS

Header Direction Description
Access-Control-Allow-Origin Réponse Origins autorisées
Access-Control-Allow-Methods Réponse Méthodes autorisées
Access-Control-Allow-Headers Réponse Headers autorisés
Access-Control-Expose-Headers Réponse Headers lisibles par JS
Access-Control-Allow-Credentials Réponse Autorise cookies/auth
Access-Control-Max-Age Réponse Cache du preflight (sec)
Origin Requête Origine de la requête
Access-Control-Request-Method Requête (preflight) Méthode demandée
Access-Control-Request-Headers Requête (preflight) Headers demandés

Bonnes pratiques

  1. Ne jamais utiliser * avec credentials - Le navigateur refuse
  2. Lister explicitement les origines en production
  3. Limiter les méthodes au nécessaire
  4. Utiliser Max-Age pour réduire les preflight
  5. Exposer uniquement les headers nécessaires au client