J’ai un problème de communication entre une API et un Frontend qui m’arrache les cheveux (et j’en ai plus beaucoup).
Voila le truc:
l’API est en python avec flask et tourne sur domaine1.fr:5500
Le front est en vuejs des plus classique et tourne sur domaine1.fr:8080
En local : aucun problème
Depuis ma connexion 4G : aucun problème
Depuis le VPN de mon boulot : aucun problème
Depuis le reseau interne (wifi comme cable) de mon boulot j’obtiens un beau « Blocage d’une requete multi-origines (Cross-Origin Request) la politique Same Origin ne permet pas de consulter la ressource… »
Une idée du pourquoi du comment ? Je ne comprend pas la difference de comportement en fonction de la connexion et surtout, je ne vois pas comment faire pour corriger cela.
Alors j’y connais rien en Python Flask, mais j’ai dû faire un truc dans l’idée en C#.
J’imagine que ton réseau boulot doit intercepter la requête du front vers le back et que c’est ça que ton back n’aime pas (en gros il te dit houla la requête vient de superproxy.org:8080 alors que je m’attends à l’avoir de domaine1.fr:8080).
Si tu as un proxy en inerne, verifie bien les parametres de X-Forward & co (de tête), (s’il paume les infos du domaine d’appel il va te balancer cette erreur)
Sinon au pire tu config un accept * sur ta config CORS et dans les logs de ton serveur http tu choppes le domaine modifié et tu l’ajoutes à domaine1.fr dans la config d’origine de tes CORS. Crade j’avoue
Alors par contre, depuis reqbin.com, je communique bien avec le back. Je penche donc de plus en plus pour un problème de configuration de vuejs… ce que je comprend encore moins. Dans ma tete, CORS etait un probème de serveur, pas de client.
et tu as regardé cela ? (il me semble avoir vu ça récemment dans mon dév, mais je l’avais pas forcément corrigé de façon orthodoxe )
edit:
Je ne me souviens plus si j’avais vu ce souci quand j’ai mis Flask en reverse proxy sur apache et/ou quand j’ai fait certains appels ajax particuliers.
Bon, j’ai trouvé… ou plutôt la DSI a trouvé pour moi. Tout ce qui passe par le port 5500 est interceptés et routés vers un autre serveur. Bien sur, la DSI ne communique pas les ports libres sinon ca serait trop facile.
Bref un changement de port pour mon API et tout marche