Je crée une application météo de base uniquement frontale à l'aide de reactjs. Pour les demandes d'API, j'utilise l'API Fetch. Dans mon application, j'obtiens l'emplacement actuel à partir d'un API simple que j'ai trouvé et il donne l'emplacement en tant qu'objet JSON. Mais quand je le demande via Fetch API, j'obtiens cette erreur.
Failed to load http://ip-api.com/json: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.
J'ai donc cherché et trouvé plusieurs solutions pour résoudre ce problème.
Alors, comment puis-je résoudre le problème de façon permanente? Quelle est la meilleure solution que je peux utiliser pour résoudre le problème CORS pour les requêtes http dans Fetch API?
Cette API semble être permissive, répondant par Access-Control-Allow-Origin:*
Je n'ai pas compris ce qui cause votre problème, mais je ne pense pas que ce soit simplement le fetch API .
Cela a bien fonctionné pour moi dans Firefox et Chrome ...
fetch('http://ip-api.com/json')
.then( response => response.json() )
.then( data => console.log(data) )
Vous devez utiliser la solution proxy, mais lui transmettre l'IP du client au lieu du proxy. Voici un exemple de format d'URL pour l'API que vous avez spécifiée, en utilisant l'IP de WikiMedia: