2011-05-12 25 views
1

我試圖在一些jQuery ajax中使用谷歌地圖API,但它看起來像我不能這樣做,因爲它是跨域的,即使我使用json?Google Maps API - 無法使用Ajax?即使使用json?

這是爲什麼?我該怎麼做才能解決這個問題?

$.ajax({ 
    type: "GET", 
    url: 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=405+Lexington+Avenue+Manhattan+NY', 
    error: function(request, status) { 
     alert('fail'); 
    }, 
    success: function(data, textStatus, jqXHR) { 
     alert('success'); 
    } 
}); 

謝謝!

回答

2

返回JSON內容不會從跨域限制排除你。 (你可能會混淆json和jsonp這裏。)

你可以使用腳本,作爲另一個人指出,但我會建議切換到JavaScript API。這個可能被設計用於服務器端代碼。

+0

javascript api可以做什麼來完成跨域調用? – 2011-05-12 05:14:24

+0

@DutrowLLC我猜,同樣的jsonp的東西:) – 2011-05-12 05:27:50

+0

@DutrowLLC JS版本似乎在這裏描述http://code.google.com/apis/maps/documentation/javascript/services.html#Geocoding – 2011-05-12 05:28:23

1

沒錯,跨域ajax調用是不允許的。相反,在src設置爲該URL的頁面上創建一個「腳本」元素。

您還可以使用$ .getScript() - http://api.jquery.com/jQuery.getScript/

+0

我個人在這些情況下使用$ .getScript(),因爲它支持回調。 – 2011-05-12 05:10:46

+0

我的解決方案不能工作。我沒有意識到他正試圖檢索JSON。我認爲他正在嘗試加載地圖庫,這可以與$ .getScript()一起使用。 – 2011-05-12 05:42:25