2010-11-28 117 views
1

下不起作用:可以使用jQuery來製作Google Maps API調用嗎?

$.get('http://maps.googleapis.com/maps/api/geocode/json?&sensor=false&region=nz&address=queen', function(response){ 
console.debug(response); 
}); 

現在看來似乎是不可能的,因爲阿賈克斯的同源策略。但是,我正在嘗試做一些交互操作,並且我需要JavaScript中Google Maps API的響應才能這樣做。

回答

0

Lee的解決方案的替代方法是向您自己的服務器腳本發出Ajax請求,然後調用Google geocoder url。這是PHP中的一個簡單示例。一個工作示例可以發現here

<?php 

$address = $_GET['address']; 
$address=str_replace(" ","+",$address); 
if ($address) { 
    $json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address. 
    '&sensor=true'); 
    echo $json; 
} 

?> 

jQuery代碼

$.getJSON("getjson.php?address="+address, 
     function(response){ 
       //rest of your code 
      }); 
4

相同的原產地政策可能很難直接訪問Google地圖URI。但是,如果你使用谷歌提供的Javascript API,你將沒有問題。

+0

姆......貌似我沒有其他選擇,只能使用谷歌自己的API函數,但爲什麼它的API調用,會工作,而不是Ajax調用。它的實現有什麼不同。 thanx任何方式,欣賞答案。 – Aman 2010-11-28 08:53:39

+0

他們的API可能使用類似[JSONP](http://stackoverflow.com/questions/2067472/please-explain-jsonp/2067584#2067584)來使跨域調用正常工作。無論如何,他們的服務都是通過其中一個API使用的 - 他們不希望你通過任何其他機制來使用它。那麼爲何不?您也可以從使用他們的API中受益 - 通過這樣做,您可以避免將來可能對底層實現進行的任何更改。出於好奇 - 爲什麼你想避免他們的API代碼? – Lee 2010-11-28 18:41:45

相關問題