Javascript 为什么这个json检索代码不能工作?
我正在尝试使用纯javascript从google的MapAPI获取som信息。为此,我查询给定的地址以检索相关信息。我一直在谷歌上搜索并发现了一些问题,但有些问题不起作用:我用console.log设置的跟踪不会出现在控制台上 这是我的密码Javascript 为什么这个json检索代码不能工作?,javascript,json,Javascript,Json,我正在尝试使用纯javascript从google的MapAPI获取som信息。为此,我查询给定的地址以检索相关信息。我一直在谷歌上搜索并发现了一些问题,但有些问题不起作用:我用console.log设置的跟踪不会出现在控制台上 这是我的密码 function getZipcode(address){ if(address){ //Formatted address console.log("address
function getZipcode(address){
if(address){
//Formatted address
console.log("address "+ address);
var formattedAddr = address.split(' ').join('+');
console.log("formattedAddr "+ formattedAddr);
//Send request and receive json data by address
var url1 = 'http://maps.googleapis.com/maps/api/geocode/json?address=' + formattedAddr +'&sensor=true_or_false';
console.log("url1 "+ url1);
var geocodeFromAddr ;//= get_json(url1);
// recuperar json
console.log("pre geocodeFromAddr " );
geocodeFromAddr = function(url1, trataJSON) {
console.log("geocodeFromAddr " );
var xhr = new XMLHttpRequest();
xhr.open('GET', url1, true);
xhr.responseType = 'json';
xhr.onload = function() {
console.log("geocodeFromAddr onload " );
var status = xhr.status;
console.log("geocodeFromAddr status " + status );
if (status === 200) {
trataJSON(null, xhr.response);
} else {
trataJSON(status, xhr.response);
}
};
xhr.send();
};
console.log("post geocodeFromAddr " );
}
}
这是我的回电
function trataJSON(err, data){
console.log("trataJSON " );
if(err){
console.log("trataJSON error " + err);
}else{
console.log("trataJSON ok " + data);
}
}
我正在使用calle pintor oliet 4 castellon进行测试,控制台上的日志如下:
query=calle pintor oliet 4 castellon
地址被调用者pintor oliet 4 castellon
格式化地址调用方+pintor+oliet+4+castellon
url1
预地理编码FROMADDR
PostGeocodeFromAddr
你可以看到,很明显,它从未出现在代码的geocodeFromAddr部分中。此外,您还可以检查GoogleAPIsURL是否正常工作——根本不返回错误
有人能告诉我一些线索吗?如果你的目标是任何其他浏览器,请在Chrome中尝试这段代码,可能需要一个Polyfill来获取 取回https://maps.googleapis.com/maps/api/geocode/json?address=calle+pintor+oliet+4+castellon和传感器=正确或错误' .thenres=>res.json .thend=>{ 如果d.results&&d.results.length{ 让address\u components=d.results[0]。address\u components; 让postalCode={}; address_components.forEachaddressComponent=>{ ifaddressComponent.types.IncludeStatal\u代码{ postalCode=地址组件; } } console.logpostalCode; 控制台。日志“邮政编码:->”,postalCode.long\u名称; }
}好的,您只是将一个函数分配给geocodeFromAddr。您永远不会将该函数连接到任何回调函数,也不会以任何方式调用它……您还需要一个来自Google的API密钥。我使用了这个问题的公认答案“我缺少什么?”在这个答案中,有一个对getJSON的调用。在你的文件中没有可能的副本