← Articles

HTTP FIELD GUIDE

CORS et requêtes HTTP du navigateur

Pourquoi cURL fonctionne alors que la même requête échoue depuis une page web ?

Pourquoi le navigateur bloque-t-il ?

Une page web suit la politique de même origine. Pour un fetch entre origines, le serveur cible doit autoriser l’accès avec des en-têtes CORS. Certaines méthodes ou certains en-têtes déclenchent d’abord une requête OPTIONS préliminaire. Si elle échoue, la vraie requête peut ne jamais partir.

En quoi cURL diffère-t-il ?

cURL n’est pas soumis aux règles CORS du navigateur. Une commande réussie prouve l’accès depuis cet ordinateur, pas le droit pour une page de lire la réponse. Le navigateur contrôle aussi Host et Cookie et peut bloquer HTTP non sécurisé depuis une page HTTPS.

Comment diagnostiquer ?

Dans l’onglet Réseau, examinez la requête préliminaire, Origin et les en-têtes de réponse. Vérifiez la correspondance de Access-Control-Allow-Origin, des méthodes et des en-têtes autorisés. Le mode no-cors n’est pas une solution : la réponse devient opaque et illisible. Si l’API ne prend pas en charge CORS, utilisez un client local fiable ou un relais sécurisé.

Références