我不知道这是否是这个问题的地方,但问题在于:
我有一个网络应用程序,使用Yahoo Weather API从各个巴西城市获取天气数据。基本上,我从这个网站得到了所有的数字:http://woeid.rosselliot.co.nz/。在我得到所有的数字之后,我创建了一个网页,通过jj调用ajax来获取所有天气信息:
var woeid = 455997;
var url_yahoo = "http://weather.yahooapis.com/forecastrss?w=" + woeid + "&u=c";
$.ajax({
url: 'http://ajax.googleapis.com/ajax/services/feed/load?output=xml&v=1.0&callback=?&q=' + encodeURIComponent(url_yahoo),
dataType: 'json',
cache: false,
success: function(data) {
data = $(data.responseData.xmlString).find("item");
var condition_node = $(data).find("yweather\\:condition");
var forecasts_node = {
"today": $(data).find("yweather\\:forecast").eq(0),
"tomorrow": $(data).find("yweather\\:forecast").eq(1),
"after_tomorrow": $(data).find("yweather\\:forecast").eq(2)
}
var temperatures = {
"today": {
"now": condition_node.attr("temp"),
"min": (forecasts_node['today']).attr("low"),
"max": (forecasts_node['today']).attr("high")
},
"tomorrow": {
"min": (forecasts_node['tomorrow']).attr("low"),
"max": (forecasts_node['tomorrow']).attr("high")
},
"after_tomorrow": {
"min": (forecasts_node['after_tomorrow']).attr("low"),
"max": (forecasts_node['after_tomorrow']).attr("high")
}
}
console.log( temperatures['today'] );
}
})
上面的示例可以从各个城市获取所有温度。我需要做的就是用相同的名称更改变量上的WOEID号。 WOEID号为455997的城市是Sobral - CE - Brazil。基本上,这个ajax调用将打开URL“weather.yahooapis.com/forecastrss?w={WOEID_NUMBER}&u=c”,从生成的XML文件中提取所有信息,并在浏览器的控制台上显示所有温度,如下所示:
Object {now: 38, min: 25, max: 32}
去年工作正常,所有温度都显示在“温度”数组变量内。但大约两个月前,它停止了工作,在所有索引上都返回'undefined'。
Object {now: undefined, min: undefined, max: undefined}
出于调试目的,我尝试了由ajax(http://weather.yahooapis.com/forecastrss?w=455997&u=c)加载的url。 Yahoo应该返回与Sobral - CE - Brazil相关的所有预测信息,但它会返回以下XML:
<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
<channel>
<title>Yahoo! Weather - Error</title>
<description>Yahoo! Weather Error</description>
<item>
<title>City not found</title>
<description>Weather Data not Available at the moment</description>
</item>
</channel>
</rss>
因此,我的webapp无法获取与我的城市相关的任何天气信息。同样的问题也发生在另一个巴西城市,如下图所示:
Sobral, Ceara, Brazil - WOEID 455997
Tianguá, Ceara, Brazil - WOEID 453622
São Benedito, Ceará, Brazil - WOEID 449511
Ubajara, Ceara, Brazil - WOEID 454340
Viçosa, Ceara, Brazil - WOEID 461578
Guaraciaba do Norte, Ceara, Brazil - WOEID 452761
有关您的信息,iOS 5的天气应用程序也会出现同样的问题。它无法显示上述某些城市的信息,几个月前工作正常。
我找不到有关此问题的最新信息。我不知道这是暂时的,还是意味着该服务将来会停止使用。有人和我有同样的问题吗?