JavaScript json调用API

时间:2017-06-27 06:53:01

标签: javascript json api

我希望在调用代码中提到的API后显示纬度和经度。然后我想传递纬度经度值作为参数,以进行另一个API调用以显示格式化地址。但是这个脚本给了我一个错误。

function loadJSON(callback) {

  var xobj = new XMLHttpRequest();
  xobj.open("GET", "https://maps.googleapis.com/maps/api/geocode/json?address=Pune", true);
  xobj.onreadystatechange = function() {
    if (xobj.readyState == 4 && xobj.status == "200") {
      callback(xobj.responseText);
    };
  }
  xobj.send();
}

function init() {
  loadJSON(function(responseText) {
      // Parse JSON string into object
      var myObj = JSON.parse(responseText);

      console.log(myObj.results[0].geometry.bounds.northeast.lat);
      var lat=myObj.results[0].geometry.bounds.northeast.lat;
      var lon=myObj.results[0].geometry.bounds.northeast.lng;
      console.log(myObj.results[0].geometry.bounds.northeast.lng);

      address(lat, lon);

    });
}

init();

function address(lat, log){
    var qstr=lat+","+log
    var link="http://maps.googleapis.com/maps/api/geocode/json?latlng="+qstr+"&sensor=true";
    console.log(link);


    fetchAddress(function(responseText) {
      // Parse JSON string into object
      var myObj = JSON.parse(responseText);


      var adress=myObj.results[0].formatted_address;
      console.log(adress);




    }, link);

}

function fetchAddress(callback, link) {

  var xobj = new XMLHttpRequest();
  xobj.open("GET", link, true);
  xobj.onreadystatechange = function() {
    if (xobj.readyState == 4 && xobj.status == "200") {
      callback(xobj.responseText);
    };
  }
  xobj.send();
}

1 个答案:

答案 0 :(得分:0)

很可能错误在您的链接中。

使用var link="//maps.googleapis.com/maps/api/geocode/json?latlng="+qstr+"&sensor=true";

而不是指定http或https