API Peta Google: Sumber yang diminta tiada pengepala 'Access-Control-Allow-Origin'
P粉993712159
2023-08-23 00:23:21
<p>Saya melihat ramai orang bertanya soalan ini, tetapi tiada jawapan yang berkesan untuk saya. </p>
<p>Saya cuba memanggil API Peta Google menggunakan React/Axios. </p>
<p>Ini adalah permintaan saya: </p>
<pre class="brush:php;toolbar:false;">componentDidMount() {
aksios({
kaedah: 'dapat',
url: `http://maps.googleapis.com/maps/api/js?key=${key}/`,
tajuk: {
"Access-Control-Allow-Origin": '*'
"Access-Control-Allow-Methods": 'GET',
},
})
.then(fungsi (tindak balas) {
console.log(respon);
})
.catch(fungsi (ralat) {
console.log(error);
});
}</pre>
<p>Ini ialah mesej ralat: </p>
<pre class="brush:php;toolbar:false;">XMLHttpRequest tidak boleh memuatkan http://maps.googleapis.com/maps/api/js?
key=xxxxxxxxx/. Respons kepada permintaan prapenerbangan gagal semakan kawalan akses: Tiada pengepala 'Access-Control-Allow-Origin' pada sumber yang diminta. Oleh itu, akses daripada 'http://localhost:3000' dinafikan. </pra>
<p>Saya membaca artikel tentang CORS yang ditunjuk oleh orang lain
https://www.html5rocks.com/en/tutorials/cors/</p>
<p>Tetapi saya tidak dapat mencari jawapan kepada masalah saya di sana. </p>
https://maps.googleapis.com/maps/api
Ambil permintaan daripada aplikasi web dalam JavaScript bahagian hadapan tidak disokong, cara kod anda cuba menggunakannya.Sebaliknya, anda mesti menggunakan Google Maps JavaScript API yang disokong, yang kod pelanggannya berbeza daripada apa yang anda cuba lakukan. Contoh perkhidmatan jarak matriksadalah seperti berikut:
Berikut ialah contoh penggunaan Place Autocomplete API menggunakan perpustakaan Places :
Menggunakan API JavaScript Peta seperti ini - dengan memuatkan perpustakaan menggunakan elemen
Google sengaja tidak membenarkan akses kepada API Peta Google dengan menghantar permintaan melalui perpustakaan lain seperti kaedah axios atau AJAX atau menggunakan XHR atau Fetch API secara langsung.