我可以在浏览器(firefox)中输入以下内容:http ://maps.google.com/maps/api/geocode/json?address=91505&sensor=false并显示 json 数据。
当我尝试将其作为 jquery ajax 调用执行时,将执行错误部分:
$("#coZip").blur(function() {
var el = $(this);
$.ajax({
url: "http://maps.google.com/maps/api/geocode/json",
cache: false,
dataType: "json",
type: "GET",
data: "address=" + el.val().substring(0,5)+"&sensor=false",
success: function(result, success) {
$("#coCity").val(result.results[0].address_components[1].short_name);
$("#coState").val(result.results[0].address_components[3].short_name);
},
error: function(result, success) {
alert("zip error");
},
});
});
我已经通过在警报窗口中显示数据字符串来验证数据字符串是“address=91505&sensor=false”,所以我不知道为什么这不起作用。另外我得到一个子字符串的原因是因为我使用了一个掩码插件,#coZip 的格式是 91505- _ _。我不在乎后缀,所以我将其删除。
我成功使用了这个 ajax 调用,它也返回了 json 数据:
$.ajax({
url: "http://zip.elevenbasetwo.com",
cache: false,
dataType: "json",
type: "GET",
data: "zip=" + el.val().substring(0,5),
success: function(result, success) {
$("#coCity").val(result.city);
$("#coState").val(result.state);
},
error: function(result, success) {
alert("zip error");
}
});
我想使用第一个 ajax 调用,因为第二个调用返回邮政编码可以使用的许多城市之一,但谷歌网站返回正确的城市。(例如 90275)