【问题标题】:couldn't get the data from the openWeatherMap api JavaScript无法从 openWeatherMap api JavaScript 获取数据
【发布时间】:2016-07-31 13:13:18
【问题描述】:

不知道问题出在哪里,但在 div selected 中没有显示任何内容。

    $(document).ready(function(){
  var lat, lng, data;

  // get the current location
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
          lat = position.coords.latitude;
          lng = position.coords.longitude;
        });
    }else {
      alert('Geo Location feature is not supported in this browser.');
   }


//get the data from the openWeatherMap API
  function getData(){
    $.getJSON('api.openweathermap.org/data/2.5/weather?lat='+lat+'&lon='+lng+'', function(json){
      data = json;
    });    
  }
  $('button').on('click', function(){
    getData();
    $(this).remove();
    $('.container').removeClass('hidden');
    $('#location').appendTo(data.name);
    $('#Weather-condition').appendTo(data.weather.main); 
    $('#wind-speed').appendTo(data.wind);
  });

});

【问题讨论】:

  • 您检查控制台是否有任何错误?
  • 没有错误@yuriy636。
  • 您是否从您发布的代码以外的其他地方调用getData()?请也发布您的 HTML。
  • 是的,我忘记调用它,但是当我这样做时,什么也没发生codepen.io/sendja/pen/xOYbvr 这是我正在开发的应用程序。
  • 您知道必须使用 API 密钥才能从 openweathermap 请求数据吗?

标签: javascript jquery web-applications


【解决方案1】:

您好像打错了:getJESON 而不是 getJSON!

【讨论】:

  • 啊,又发现一个错字:lng,大写 g!
  • 谢谢你,但似乎问题出在其他地方@csabinho
  • 似乎 lat 和 lng 变量未定义,但这是为什么呢?
  • 您可以尝试将 lat 和 lng 作为参数传递给 getData!
【解决方案2】:

你可以从两个方面发现这个问题

  • 您是否从 ajax 获取数据? PS:可以添加 c.log(data)
  • 您是否成功在您的网页中显示数据

【讨论】:

  • 在控制台之后,数据变量在这种情况下是未定义的,但为什么?
  • 我认为你的 url 是错误的,检查 'lat' 和 lnG 字段
猜你喜欢
  • 2018-05-17
  • 2018-08-22
  • 2021-12-31
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 2015-10-06
  • 2018-12-09
相关资源
最近更新 更多