为什么console.log在这种情况下不起作用? Openweathermap api

时间:2017-07-11 14:36:07

标签: javascript jquery json openweathermap

我正处于天气应用程序项目的中间,无法理解为什么第20行的console.log无法在下面运行:

$(document).ready(function() {
  var long;
  var lat;
  var temp;
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      long = position.coords.longitude;
      lat = position.coords.latitude;

      var api =
        "api.openweathermap.org/data/2.5/weather?lat=" +
        lat +
        "&lon=" +
        long +
        "&appid=xxxxxxxxxxxxxxxxxxxxxxx";
      //console.log(api); 
      $("#data").html("latitude: " + lat + "<br>longitude: " + long);
      $.getJSON(api, function(json) {
        var kelvin = data.main.temp;
        console.log(kelvin);
        
       
      });
    });
  }
});
body{
  height:100vh;
  position:relative;
}
.container{
  margin:auto;
  text-align:center;
  padding:20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
  <div class="container">
    <h1>Weather App</h1>
    <div id="data">location</div>
    <div id="temperature">Temperature
      <span id="degrees" onclick="">DEGREES</span></div>
    <div class="weather">Weather icon</div>
    
  </div>
  
</body>

我想从openweathermap api获取温度,我正在测试开尔文变量,但它没有显示任何内容。

非常感谢,

1 个答案:

答案 0 :(得分:-2)

这不是你怎么称呼$ .getJSON。它甚至都不是很接近。

第一个参数是一个URL,您提供的字符串不是,因为URL以协议开头,例如“https://”。

第二个参数是数据,而不是函数,这是您提供的。

第三个​​参数是成功回调的地方。

如果取消引用失败,请首先打印出来。