Yahoo forecastjson提供XML错误

时间:2012-04-29 21:02:33

标签: javascript jquery xml json yahoo-api

浏览此网站后,我发现您可以使用forecastjson以JSON格式获取Yahoo天气。

当我跑步时:

$.getJSON("http://weather.yahooapis.com/forecastjson?w=2112762724", function(data){
    ...
});

我收到以下错误:

XMLHttpRequest cannot load http://weather.yahooapis.com/forecastjson?w=2112762724. Origin null is not allowed by Access-Control-Allow-Origin.

我之前遇到过这个错误,但通常是因为我正在尝试加载XML跨域但这显然是JSON。如果转到getJSON函数中的链接,它将显示JSON数据。有谁知道我为什么会收到这个错误?

由于

1 个答案:

答案 0 :(得分:2)

使用JSON并不意味着您不会遇到跨域问题。这是一个对象标准。

如果您想提出跨域请求,请使用JSONP

您尝试请求的网址不支持JSONP请求。但你可以使用YQL代替那个。

这是一个例子,

var query = escape('select item from weather.forecast where woeid="2295424"');
var url = "http://query.yahooapis.com/v1/public/yql?q=" + query + "&format=json&callback=c"; 

$.getJSON(url, function(data) {
   console.log(data);
});​

这是你可以查看json结果的URL

DEMO