2017-02-22 7 views
0

Я получаю неправильную информацию от openweathermap.org. Он возвращает информацию, отображаемую в примерах, приведенных на веб-сайте.OpenWeatherMap возвращает неверные результаты

Вот мой HTML код:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Your Weather</title> 
     <meta charset="utf-8"> 
     <link rel="stylesheet" href=""> 
    </head> 
    <body> 
     <div> 
     <h1>The Weather</h1> 
      <div> 
       <p> 
        <span id="show-weather"></span> 
        <span id="show-country"></span> 
       </p> 
      </div> 
     </div> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
     <script src="custom.js"></script> 
    </body> 
</html> 

А вот мой JS код:

$(document).ready(function() { 
    $.ajax({ 
     type: 'GET', 
     data: { 
      id: '2172797', 
      appid: 'b1b15e88fa797225412429c1c50c122a1' 
     }, 
     url: 'https://openweathermap.org/data/2.5/weather/', 
     xhrFields: { 
      withCredentials: false 
     }, 
     headers: {}, 
     success: function(data) { 

      $("#show-weather").text("Your location latitude is: " + data.coord.lat + " and longitude is: " + data.coord.lon); 
      $("#show-country").text(" Your current location is: " + data.sys.name); 

     }, 
     error: function(data) { 

      console.log('error'); 
      console.log(data); 
     }, 
    }); 
}); 

Я не могу получить текущую информацию, как название города или широты или долготы.

+0

Как выглядит ответ? Вы получаете ошибки в консоли? – zero298

ответ

0

Свойство name находится на корневом уровне, поэтому вам необходимо использовать свойство data.name, и если вам нужно название страны, тогда значение должно быть data.sys.country. Там не свойство с именем name под data.sys

Полный рабочий код:

$(document).ready(function() { 
 
    $.ajax({ 
 
     type: 'GET', 
 
     data: { 
 
      id: '2172797', 
 
      appid: 'b1b15e88fa797225412429c1c50c122a1' 
 
     }, 
 
     url: 'https://openweathermap.org/data/2.5/weather/', 
 
     xhrFields: { 
 
      withCredentials: false 
 
     }, 
 
     headers: {}, 
 
     success: function(data) { 
 
//console.log(data); 
 
      $("#show-weather").text("Your location latitude is: " + data.coord.lat + " and longitude is: " + data.coord.lon); 
 
      $("#show-country").text(" Your current location is: " + data.sys.country); 
 

 
     }, 
 
     error: function(data) { 
 

 
      console.log('error'); 
 
      console.log(data); 
 
     }, 
 
    }); 
 
});
<body> 
 
     <div> 
 
     <h1>The Weather</h1> 
 
      <div> 
 
       <p> 
 
        <span id="show-weather"></span> 
 
        <span id="show-country"></span> 
 
       </p> 
 
      </div> 
 
     </div> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
     
 
    </body>

0

Параметр ID запроса вы отправляете с запросом город ID ... то же самое id, используемого в примерах api docs. Измените идентификатор или проверьте документы о том, как запрашивать другие города, используя другие параметры запроса.

Смежные вопросы