无法解析Weather Underground API

时间:2017-01-31 11:33:23

标签: ajax geolocation weather-api

我正在尝试创建一个简单的天气页面。我想从Weather Underground API检索用户位置的坐标以及随后的位置的天气信息。我能够看到我坐标的JSON响应。但是,我在使用AJAX函数解析JSON时遇到问题并在HTML上显示它。以下是我的代码

HTML:

<div class="container-fluid text-center">
<body>
<div id="forecast">
<h1>Weather at <span id="location"> </span></h1>
<div id="imgdiv">
<img id="img" src=""/>
</div>
<p>It is currently <span id="temp"> </span>°C with <span id="desc"> </span></p>
<p>Wind: <span id="wind"></span></p>

</body>
</div>

JQuery的;

    var Geo={};
     var temp_f
        //var key = ‘4d6eb96f1aa092b2’;

        if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(success,error);
        }
        else {
        alert('Geolocation is not supported');
        }

        function error() {
        alert("That's weird! We couldn't find you!");
        }

   function success(position) {
              Geo.lat = position.coords.latitude;
              Geo.lng = position.coords.longitude;
              Geo.url   = "http://api.wunderground.com/api/4d6eb96f1aa092b2/forecast/geolookup/conditions/q/" + Geo.lat + "," + Geo.lng + ".json"; 

     $.ajax({
    url : Geo.url,
    dataType : "json",
    success : function(url) {
         location = url['location']['city'];
         temp_f = url['current_observation']['temp_f'];
        $("#temp").html(temp_f);
    }
   });

}

我将location和temp_f值设为undefined。我提到非常相似的帖子Weather Underground API with Ajax但还是无法弄清楚问题是什么?我是新来的,请原谅我是否遗漏了一些基本的东西。

1 个答案:

答案 0 :(得分:1)

它适用于我检查:https://jsfiddle.net/jigarb1992/q1w8usq9/

我在您的代码中发现的问题可能在location = url['location']['city'];location中的javascript会将您重定向到指定位置。

尝试使用 jsfiddle

中的代码进行更改