Uncaught TypeError: не удается прочитать свойства «результаты» неопределенного - 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: Не удается прочитать свойства «результаты» неопределенного

Что не так?

благодаря

javascript,jquery,framework7,

0

Ответов: 2


0 принят

Используйте dataType:'json'.

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>


0

Вы можете использовать $.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>

JavaScript, JQuery, framework7,
Похожие вопросы