2017-01-31 13 views
0

Я пытаюсь создать простую страницу погоды. Я хочу получить координаты местоположения пользователя, а затем информацию о погоде местоположения от Weather Underground API. Я могу получить ответ JSON для моих координат. Тем не менее, я столкнулся с проблемой синтаксического анализа JSON с использованием функции AJAX и показать его на HTML. Ниже мой кодНевозможно разобрать ответ JSON от Weather Underground API

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); 
    } 
    }); 

} 

я получаю местоположение и temp_f значение как undefined. Я упомянул очень похожий пост Weather Underground API with Ajax, но не смог выяснить, в чем проблема? Я новичок в этом, поэтому, пожалуйста, извините, если не хватает чего-то основного.

+0

сделать предупреждение (JSON.stringify (URL)) или console.log (JSON.stringify (URL)) и посмотреть, что ответ вы получите, также, пожалуйста, разместите его здесь – Jigarb1992

+0

он дает 'undefined' – Jio

+0

Какова ценность Geo.lat и Geo.lng? – Jigarb1992

ответ

1

Он отлично работает для меня проверить: https://jsfiddle.net/jigarb1992/q1w8usq9/

Проблема, которую я нашел в вашем коде может быть здесь location = url['location']['city'];, то location в javascript перенаправит вас на данном месте.

Попробуйте код, который я делать изменения в jsfiddle

+0

Да, похоже, сейчас работает. Может быть, проблема заключалась в объявлении переменных, которые не нужны. Спасибо за вашу помощь – Jio