Uncaught TypeError:无法读取未定义的属性“结果” - YQL(Uncaught TypeError: Cannot read property 'results' of 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; }

结果是:

未捕获的TypeError:无法读取未定义的属性“结果”

哪里不对?

谢谢

I try to get weather data from Yahoo YQL. The request worked, but it stop to work...

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

The result is:

Uncaught TypeError: Cannot read property 'results' of undefined

What is wrong?

Thanks

最满意答案

使用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> 
  
 

Use 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> 
  
 

更多推荐