Первый вызов API возвращает правильный объект JSON, однако я не могу извлечь из него значения - PullRequest
0 голосов
/ 09 декабря 2018

Вызов API дает объект JSON в консоли с responseText.Однако когда я использую объект для извлечения данных, я получаю неопределенный.Я не знаю, что я сделал не так.Я прочитал Это может быть мне нужно HTTPS, а не HTTP.

enter image description here

На рисунке undefined соответствует console.log (datay.main) (main - это ключ в объекте JSON, но console.log (дата) возвращает объект JSON.

 let yO = new XMLHttpRequest();
 yO.open("GET", "http://api.openweathermap.org/data/2.5/weather? 
 q=London&appid=a11662929a9ec4f95e189d620d00c4b3&units=metric" )
 yO.onload = function(){
 let data = yO.responseText;
 let datay = JSON.parse(data);

 console.log(datay.main)

 }
 yO.send();

1 Ответ

0 голосов
/ 10 декабря 2018

Я предполагаю, что вы добавили 2 пробела по URL-адресу ...weather?<space><space>q=London..., все остальное работает просто отлично.

let xhr = new XMLHttpRequest();
xhr.open("GET", "http://api.openweathermap.org/data/2.5/weather?q=London&appid=a11662929a9ec4f95e189d620d00c4b3&units=metric");
xhr.onload = function(){
    let data = xhr.responseText;
    data = JSON.parse(data);
    
    // Check for errors
    if (data.cod != 200) {
        console.error(data.message);
    }
    
    // No errors
    else {
        console.log(data.main);
    }
}
xhr.send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...