API Google Maps : il manque l'en-tête "Access-Control-Allow-Origin" à la ressource demandée
P粉993712159
2023-08-23 00:23:21
<p>J'ai vu beaucoup de gens poser cette question, mais aucune des réponses n'a fonctionné pour moi. </p>
<p>J'essaie d'appeler l'API Google Maps à l'aide de React/Axios. </p>
<p>Voici ma demande d'obtention : </p>
<pre class="brush:php;toolbar:false;">componentDidMount() {
axios({
méthode : 'obtenir',
URL : `http://maps.googleapis.com/maps/api/js?key=${key}/`,
en-têtes : {
"Contrôle d'accès-Autoriser-Origine": '*'
"Access-Control-Allow-Methods": 'GET',
},
})
.then(fonction (réponse) {
console.log(réponse);
})
.catch(fonction (erreur) {
console.log(erreur);
});
}</pré>
<p>Voici le message d'erreur : </p>
<pre class="brush:php;toolbar:false;">XMLHttpRequest ne peut pas charger http://maps.googleapis.com/maps/api/js ?
key=xxxxxxxxx/. La réponse à l'échec de la vérification du contrôle d'accès de la demande de contrôle en amont : il n'y a pas d'en-tête « Access-Control-Allow-Origin » sur la ressource demandée. Par conséquent, l'accès depuis « http://localhost:3000 » est refusé. ≪/pré>
<p>J'ai lu l'article sur CORS que d'autres ont souligné
https://www.html5rocks.com/en/tutorials/cors/</p>
<p>Mais je n’y trouve pas de réponse à mon problème. </p>
https://maps.googleapis.com/maps/api
Les requêtes de récupération des applications Web en JavaScript front-end ne sont pas prises en charge, de la même manière que votre code essaie de l'utiliser.Au lieu de cela, vous devez utiliser l'API JavaScript Google Maps prise en charge, dont le code client est différent de ce que vous essayez de faire. Un exemple de service matriciel de distanceest le suivant :
Voici un exemple d'utilisation de l'API Place Autocomplete en utilisant la bibliothèque Places :
Utiliser l'API Maps JavaScript comme ceci - en chargeant la bibliothèque à l'aide de l'élément
Google n'autorise intentionnellement pas l'accès à l'API Google Maps en envoyant des requêtes via d'autres bibliothèques comme les méthodes axios ou AJAX ou en utilisant directement l'API XHR ou Fetch.