我正在嘗試構建一個在服務器端使用Node和Express的React應用程序。我得到跨來源請求阻止錯誤,當我在寫一個AJAX調用谷歌API.Following是我的Ajax請求:React組件無法向Google API發出請求
$.ajax({
url:
'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins='+start+'&destinations='+end+'&key=%20'+Key,
dataType: 'json',
cache: false,
crossDomain: true,
success: function(data) {
console.log(json);
}.bind(this),
error: function(xhr, status, err) {
console.error('https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins='+start+'&destinations='+end+'&key=%20'+Key, status, err.toString());
}.bind(this)
});
鏈接時,通常被稱爲上的Web瀏覽器正確顯示JSON。
我在我的快遞服務器中啓用了https。但這並沒有幫助。 我試着改變數據類型:'jsonp',但它給出parseerror(jquery未被調用)。 jsonp需要一個回調,但我的控件不會回到回調函數,它會繼續給出解析錯誤。
<script src="https://apis.google.com/js/client:platform.js?onload=start" async defer></script>
<script>
function start() {
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
});
});
}
</script>
我得到在所有情況下以下錯誤:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=ORIGIN&destinations=END&key=YOUR_KEY . (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
但錯誤
我已經在谷歌API console.And取得所需的憑據使用以下腳本嘗試依然存在。有人可以幫我刪除這個錯誤或解析錯誤(在jsonp數據類型的情況下)。
有你爲什麼做一個AJAX調用任何具體原因是什麼? google距離矩陣API有JavaScript實現。 – Coder
我只是想使用Google距離矩陣API中的json。我知道有一個服務。 – shinite
你現在能夠得到它嗎?這裏是示例JavaScript實現的鏈接[谷歌距離矩陣](https://developers.google.com/maps/documentation/javascript/distancematrix) – Coder