-1

このサイトを閲覧したところ、forecastjsonを使用してYahooの天気をJSON形式で取得できることがわかりました。

私が走るとき:

$.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データが表示されます。なぜ私がこのエラーを受け取るのか誰かが知っていますか?

ありがとう

4

1 に答える 1

2

使用JSONしても、クロスドメインの問題が発生しないという意味ではありません。それがオブジェクトの標準です。

クロスドメインリクエストを行う場合は、JSONPを使用する必要があります。

リクエストしようとしているURLは、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です。

デモ

于 2012-04-29T21:43:18.393 に答える