Erreur CORS avec Javascript mais pas avec Python / PHP

J’écris un petit script pour accéder à une API externe pour le travail. Je l’ai fait à l’origine en Python et tout a bien fonctionné.

On m’a ensuite demandé d’essayer de le faire en Javascript. Maintenant, je ne suis pas vraiment un programmeur, mais je sais (ou crois) que Javascript est en grande partie destiné au côté client, alors que PHP ou Python sont réellement destinés aux opérations côté serveur. Quand j’ai écrit le script en Python, je n’ai eu aucun problème, mais en Javascript,

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 

Erreur. D’après ce que j’ai lu sur CORS et sur des questions similaires sur Stack, cela a du sens, mais je ne comprends pas vraiment pourquoi je ne reçois pas une erreur similaire en Python ou en PHP …

Comme je suis assez novice dans ce domaine, il me manque probablement un certain nombre de choses, mais j’apprécierais vraiment toute idée que quiconque pourrait me donner. Si j’ai omis des informations importantes, merci de me le faire savoir.

De la documentation de Mozilla :

Pour des raisons de sécurité, les navigateurs limitent les requêtes HTTP d’origine croisée lancées à partir de scripts. Par exemple, XMLHttpRequest et Fetch suivent la stratégie de même origine. Ainsi, une application Web utilisant XMLHttpRequest ou Fetch peut uniquement envoyer des requêtes HTTP à son propre domaine.

Comme Javascript dans le navigateur utilise XMLHttpRequest et fetch pour effectuer des demandes HTTP, elles sont soumises à l’application de la politique CORS.

Plus d’informations sur les raisons de la SCRO :

CORS est conçu pour permettre aux hôtes de ressources (tout service rendant ses données disponibles via HTTP) de limiter les sites Web pouvant accéder à ces données.

Exemple: vous hébergez un site Web présentant des données de trafic et vous utilisez des requêtes AJAX sur votre site Web. Si SOP et CORS n’étaient pas là, tout autre site Web pourrait afficher vos données de trafic simplement en AJAXing sur vos points finaux; n’importe qui pourrait facilement “voler” vos données et donc vos utilisateurs et votre argent.

L’API externe que vous utilisez a probablement implémenté intentionnellement une stratégie CORS. Par exemple, si l’API requirejs une clé secrète au niveau de l’application pour l’authentification, une stratégie CORS découragerait l’utilisation de cette clé dans un environnement public (à savoir le navigateur). Sinon, l’API peut avoir une liste de noms de domaine acceptables pour CORS, n’incluant pas le domaine que vous utilisez actuellement.

Ce ne sont que quelques exemples. il peut y avoir un certain nombre de raisons pour lesquelles une API implémente des en-têtes CORS.