2016-06-08 82 views
0

我正在使用Yahoo Weather API无法获取未定义或空引用的属性“查询”

这里是我的代码:

<script> 
var callbackFunction = function (data) { 
    console.log(data); 

    var location = data.query.results.channel.location; 
    var condition = data.query.results.channel.item.condition; 
    var wind = data.query.results.channel.wind; 
    var units = data.query.results.channel.units; 

    document.getElementById('Weather-Info').innerHTML = 'The weather for ' + location.city + ', ' + location.region + ' is ' + condition.temp + units.temperature + ' with a wind speed of ' + wind.speed; 
} 
callbackFunction() 

<script src="https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20weather.forecast%20WHERE%20woeid%3D%222409681%22%20and%20u%3D%22f%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=callbackFunction"></script> 

每次我进入我收到页面弹出如下:

无法获取财产 '查询'未定义或空引用

但是,如果我点击否,数据仍然填充..如果它填充数据如果它告诉我一个属性是不确定的? YQL天气API非常复杂。

+0

请注意,您在定义之后调用'callbackFunction'。这就是你得到这个错误的原因。 – dlopez

回答

2

你为什么要自己调用回调函数?无论如何,在没有参数的情况下调用它,意味着data将不确定,这就是为什么你会得到错误。

我对雅虎一无所知。天气API,但是这似乎是一个JSONP的事情,所以请尝试删除该部分:

callbackFunction() 

,因为这会被调用一次自动脚本加载。

+0

啊当然..非常感谢你 –

相关问题