JQuery Ajax读取JSON时遇到问题

JQuery Ajax读取JSON时遇到问题,jquery,ajax,Jquery,Ajax,我正在使用JQuery尝试读取JSON,结果一直出现在错误处理程序中。当我检查DOM时,我看到的只是statusText下的“error”,没有更多细节。我已尝试将其保存到本地文件,并添加了beforeSend部分,以解决基于另一篇文章的潜在MIME问题。当我在浏览器中打开url时,它会生成有效的JSON $.ajax({ type : "GET", url : "http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,

我正在使用JQuery尝试读取JSON,结果一直出现在错误处理程序中。当我检查DOM时,我看到的只是statusText下的“error”,没有更多细节。我已尝试将其保存到本地文件,并添加了beforeSend部分,以解决基于另一篇文章的潜在MIME问题。当我在浏览器中打开url时,它会生成有效的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);}

}))

您的代码没有问题。出现此问题是因为您试图执行跨域AJAX请求。然而,并不是所有的都丢失了,因为谷歌提供了他们的客户端地理编码API

下面的完整代码示例(已测试并运行)将允许您访问所需的JSON对象。在本例中,警报框将显示“Williamsburg,NY,USA”-第一个格式化的_地址

<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>

$(文档).ready(函数(){
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=新的google.maps.latlng(lat,lng);
geocoder.geocode({'latLng':latLng},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
如果(结果[1]){
警报(结果[1]。格式化的\u地址);
}
}否则{
警报(“地理编码器因“+状态”而失败);
}
});
});

您是否尝试覆盖缓存?九(9)个问题;不@用户743183:这是你的第9个问题,你还没有接受一个答案。很多人都对你的问题有所贡献,你应该花点时间接受那些对你有帮助的答案。不是每个答案都是你想要的,但是,对于这个问题,你得到的正是你需要的。现在是你回报社会的时候了,否则人们将来不会愿意帮助你。我敦促你们更多地了解投票和将问题标记为已回答的问题。转到此链接阅读更多信息: