Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个json检索代码不能工作?_Javascript_Json - Fatal编程技术网

Javascript 为什么这个json检索代码不能工作?

Javascript 为什么这个json检索代码不能工作?,javascript,json,Javascript,Json,我正在尝试使用纯javascript从google的MapAPI获取som信息。为此,我查询给定的地址以检索相关信息。我一直在谷歌上搜索并发现了一些问题,但有些问题不起作用:我用console.log设置的跟踪不会出现在控制台上 这是我的密码 function getZipcode(address){ if(address){ //Formatted address console.log("address

我正在尝试使用纯javascript从google的MapAPI获取som信息。为此,我查询给定的地址以检索相关信息。我一直在谷歌上搜索并发现了一些问题,但有些问题不起作用:我用console.log设置的跟踪不会出现在控制台上

这是我的密码

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的调用。在你的文件中没有可能的副本