Uncaught TypeError: не удается прочитать результаты свойства undefined — YQL

Я пытаюсь получить данные о погоде от Yahoo YQL. Запрос сработал, но перестал работать...

var yql = encodeURIComponent('select * from weather.forecast where woeid = "' + woeid + '"and u="c"');
        $$.ajax({
             //dataType: "json",
            // contentType: 'application/json; charset=utf-8',
              dataType: 'text',
              url: 'https://query.yahooapis.com/v1/public/yql?q=' + yql + '&format=json',
              timeout: 5000,

              //Sucesso
              success: function(data){
                var resultados = data.query.results.channel;

                var graus = resultados.item.condition.temp;
                var cod_condicao = resultados.item.condition.code;
                var nascer = resultados.astronomy.sunrise;
                var poente = resultados.astronomy.sunset;
                var umidade = resultados.atmosphere.humidity + '%';
                var vento = resultados.wind.speed + 'KM/H'
                var forecast = resultados.item.forecast;
}

Результат:

Uncaught TypeError: не удается прочитать «результаты» свойства неопределенного

Что не так?

Спасибо


person Pedro Antônio    schedule 12.10.2016    source источник
comment
Попробуйте отладить его, посмотрев, что console.log(data); выводит в функции успеха.   -  person tcooc    schedule 12.10.2016
comment
console.log(data) отлично возвращает запрос... :(   -  person Pedro Antônio    schedule 12.10.2016
comment
'select * from weather.forecast where woeid = "' + woeid + '"and u="c"' разве между апострофом и ключевым словом and не должно быть пробела?   -  person anima_incognita    schedule 12.10.2016
comment
Почему dataType установлено на "text"? Какой полный URL?   -  person guest271314    schedule 12.10.2016
comment
Это была попытка заставить его работать...   -  person Pedro Antônio    schedule 12.10.2016
comment
query.yahooapis.com/v1/public/yql?q=select% 20*%20from%20weather.forecast%20where%20woeid%20%3D%20%22455827%22and%20u%3D%22c%22&format=json   -  person Pedro Antônio    schedule 12.10.2016
comment
URL-адрес имеет неверный формат. Что такое woeid?   -  person guest271314    schedule 12.10.2016
comment
URL-адрес в этом поле комментария отображается неправильно... Woeid - это идентификатор места для поиска...   -  person Pedro Antônio    schedule 12.10.2016
comment
Ссылка - anotepad.com/notes/8i9qkk   -  person Pedro Antônio    schedule 12.10.2016


Ответы (2)


Используйте 1_.

var woeid = 455827; // example id
var yql = encodeURIComponent('select * from weather.forecast where woeid = "' + woeid + '"and u="c"');
$.ajax({
  dataType: 'json',
  url: 'https://query.yahooapis.com/v1/public/yql?q=' + yql + '&format=json',
  timeout: 5000,
  //Sucesso
  success: function(data) {
    console.log(data);
    var resultados = data.query.results.channel;

    var graus = resultados.item.condition.temp;
    var cod_condicao = resultados.item.condition.code;
    var nascer = resultados.astronomy.sunrise;
    var poente = resultados.astronomy.sunset;
    var umidade = resultados.atmosphere.humidity + '%';
    var vento = resultados.wind.speed + 'KM/H'
    var forecast = resultados.item.forecast;
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

person tcooc    schedule 12.10.2016
comment
Это исправляет ошибку Uncaught TypeError: невозможно прочитать «результаты» свойства undefined и вернуть 200 OK и данные, но запускает блок ошибок моего ajax... - person Pedro Antônio; 12.10.2016
comment
@PedroAntônio Запустите код, который я разместил. Он работает, как и ожидалось, и я использую тот же код, что и у вас. Следовательно, проблема где-то в вашем коде, который вы не опубликовали. - person tcooc; 12.10.2016

Вы можете использовать $.getJSON() с URL

"https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid='45‌​5827' and u='c'&format=json&diagnostics=true&callback="

"https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D'45%E2%80%8C%E2%80%8B5827'%20and%20u%3D'c'&format=json&diagnostics=true&callback="

$.getJSON("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D'45%E2%80%8C%E2%80%8B5827'%20and%20u%3D'c'&format=json&diagnostics=true&callback=")
  .then(function(data) {
    var resultados = data.query.results.channel;
    var graus = resultados.item.condition.temp;
    var cod_condicao = resultados.item.condition.code;
    var nascer = resultados.astronomy.sunrise;
    var poente = resultados.astronomy.sunset;
    var umidade = resultados.atmosphere.humidity + '%';
    var vento = resultados.wind.speed + 'KM/H'
    var forecast = resultados.item.forecast;
    console.log(resultados, graus, cod_condicao
                , nascer, poente, umidade, vento, forecast);
  })
  .fail(function(jqxhr, textStatus, errorThrown) {
     console.log(errorThrown)
  })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

person guest271314    schedule 12.10.2016