2011-07-10 57 views
1

我正在使用JQuery嘗試閱讀JSON,並且一直持續到錯誤處理程序。當我檢查DOM時,我所看到的只是statusText下的「錯誤」,沒有更多細節。我試過把它保存到本地文件中,並添加了beforeSend部分來解決基於另一篇文章的潛在MIME問題。當我在瀏覽器中打開url時,它會生成有效的JSON。JQuery Ajax閱讀JSON的問題

$.ajax({ 
type : "GET", 
url : "http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true", 
beforeSend : function(x) { 
    if (x && x.overrideMimeType) {x.overrideMimeType("application/j-son;charset=UTF-8");}}, 
dataType : "application/json", 
success : function(data) { 
    alert("success" + data)}, 
error : function(y) {alert("failure" + y.statusText);} 

});

+0

您是否嘗試覆蓋緩存? –

+3

九(9)題;沒有[接受的答案](http://meta.stackexchange.com/q/5234/148310)! –

回答

3

你的代碼沒有問題。由於您嘗試執行跨域AJAX請求,因此問題正在發生。然而,並非所有的東西都會丟失,因爲Google提供了他們的Google Maps Javascript API V3 Services-客戶端地理編碼API。

下面的完整代碼示例(測試和工作)將使您可以訪問所需的JSON對象。在這個例子中,一個警告框將顯示「美國紐約州威廉斯堡」 - 第一個格式化地址。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var geocoder = new google.maps.Geocoder(); 
    var input = "40.714224,-73.961452"; 
    var latlngStr = input.split(",", 2); 
    var lat = parseFloat(latlngStr[0]); 
    var lng = parseFloat(latlngStr[1]); 
    var latlng = new google.maps.LatLng(lat, lng); 
    geocoder.geocode({ 'latLng': latlng }, function (results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      if (results[1]) { 
       alert(results[1].formatted_address); 
      } 
     } else { 
      alert("Geocoder failed due to: " + status); 
     } 
    }); 
}); 
</script> 
+0

@ user743183:這是你的第9個問題,你還沒有接受一個答案。很多人對你的問題做出貢獻,你應該花點時間接受那些幫助你的答案。並非每一個答案都是你正在尋找的,但是,對於這個問題,你正在得到你所需要的。現在是時候讓你回到StackOverflow社區,否則人們不會在將來幫助你。我強烈建議您進一步瞭解如何回答問題並標記問題。轉到此鏈接閱讀更多:http://meta.stackexchange.com/q/5234/148310 –