2012-07-10 33 views
3

我唯一的問題是,如果瀏覽器不支持跨域AJAX請求比谷歌地圖API如何工作獲取數據。geocoder.geocode()如何工作?

下面的代碼如何工作?

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
geocoder = new google.maps.Geocoder(); 
geocoder.geocode({ 'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
    } 
}); 
</script> 

geocoder.geocode在內部執行什麼操作?

編輯: 好它們包括http://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/8/main.js

誰能告訴我他們在他們的JS代碼中使用JSONP?

+0

打開控制檯並轉到引用的庫,以便您可以檢查由Google地圖庫添加的代碼。 – Naigel 2012-07-10 11:32:27

+0

Minified code is * really * well-readable ... – ThiefMaster 2012-07-10 11:32:50

+0

我通過http://www.javascriptbeautifier.com/美化了它; p – hardik 2012-07-10 11:44:15

回答

2

它很可能使用JSONp,即它包含一個來自谷歌服務器的腳本,它調用回調函數並將響應傳遞給該函數。

+0

你能告訴我他們在js代碼中使用JSONp的位置嗎[link](http ://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/8/main.js)?我試過但失敗了。 – hardik 2012-07-10 12:05:26

+0

最有可能在'he'函數中:'a [sb](「script」)'調用'createElement'。 – ThiefMaster 2012-07-10 12:10:56

+0

是的,你是對的。謝謝 :) – hardik 2012-07-10 12:32:42