Uncaught TypeError: Cannot read property 'results' of undefined - 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;
}
结果是:
Uncaught TypeError: Cannot read property 'results' of undefined
怎么了?
谢谢
使用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>
您可以将 $.getJSON()
与 URL
一起使用
"https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid='455827' 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>
我尝试从 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: Cannot read property 'results' of undefined
怎么了?
谢谢
使用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>
您可以将 $.getJSON()
与 URL
"https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid='455827' 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>