我正在尝试使用geocodefarm.com中的反向地理编码API来获取使用纬度和经度的地址。当我运行这个时,我收到了警告"错误",但geocodefarm状态说我已经使用了我的一个查询...所以我知道它要去网址,我只是不确定我应该如何获取JSON并解析它。它在getLocation()上失败了。任何帮助都会很棒!
<td><button onclick="getLocation();return false;" runat="server"></button></td>
脚本
function getLocation() {
jQuery.support.cors = true;
$.ajax({
url: 'http://www.geocodefarm.com/api/reverse/json/*apiKey*/45.2040305/-93.3995728/',
type: 'GET',
dataType: 'json',
async: false,
success: function (data) {
WriteResponse(data);
},
error: function (error) {
alert("Error");
}
});
}
function WriteResponse(location) {
if (location != null) {
$("#txtAddZipCode").html = location.address
}
}
这就是该网站表示应该以JSON格式返回的方式
{
},
"STATUS": {
"access": "KEY_VALID, ACCESS_GRANTED",
"status": "SUCCESS"
},
"PROVIDER": {
"provider": "LOCAL_FARM",
"import": "ALREADY_STORED"
},
"ADDRESS": {
"address": "522-534 West Main Street, Anoka, MN 55303, USA",
"accuracy": "GOOD ACCURACY"
},
"COORDINATES": {
"latitude": "45.2040305",
"longitude": "-93.3995728"
},
"STATISTICS": {
"load_time": "0.52",
"https_ssl": "DISABLED, INSECURE"
}
}
}
答案 0 :(得分:0)
你有一些问题,首先你不能跨域进行同步ajax调用,这是不可能的,所以没有理由添加async : false
,它被忽略了。
其次,这是错误的语法
$("#txtAddZipCode").html = location.address
应该是
$("#txtAddZipCode").html(location.address);
最后,您使用的URL似乎不支持CORS,运行时出现No 'Access-Control-Allow-Origin'
错误,但我没有API密钥,因此可能是导致它的原因。