1

iTunes Search API に問題があります。URL (つまり、 http://itunes.apple.com/search?term=Reeder&country=fr&entity=software )を介して直接アクセスするとデータを表示できますが、単純なスクリプトを介して試してみると、データは表示されません。ロード。

var xhr = new XMLHttpRequest();

xhr.open('GET', 'http://itunes.apple.com/search?term=Reeder&country=fr&entity=software');
xhr.send();

xhr.addEventListener('readystatechange', function () {
    if (xhr.readyState === xhr.DONE && xhr.status === 200) {
        alert(xhr.responseText);
    }
}, false);

何が起こっているのか知っている人はいますか?

4

3 に答える 3

2

他の人が言ったように、あなたの要求は同一生成元ポリシーに違反しています。

私はしばらく前にこの問題を抱えていて、YQLを使用してJSONPコールバックを作成しました(データをjavascript関数でラップします)。つまり、スクリプトタグは同一生成元ポリシーの対象ではありません

YQL:http ://developer.yahoo.com/yql/ JSONP: http: //en.wikipedia.org/wiki/JSONP(JSONを知っていると思います)

詳細(JSONPの使い方)は自分で学ぶことができるので、例を挙げましょう。

YQLクエリはになりますselect * from json where url='http://itunes.apple.com/search?term=Reeder&country=fr&entity=software'。タイプを(コンソールで)JSONに変更すると、JSONPのコールバックを指定できます。コンソール:http ://developer.yahoo.com/yql/console リンク

スクリプトタグを作成し、上記のリンク/URLをソースとして設定します。ご覧のとおり、JSONデータは関数名でラップされています。YQL/JSONソースがロードされたときに呼び出されるコールバック関数を定義しておく必要があります。次に、そのコールバック関数がJSONデータを処理します。

于 2012-09-22T21:18:20.263 に答える
0

リクエストは同一生成元ポリシーに違反しています。

一言で言えば、別のドメインに対してajax呼び出しを行うことはできません。php、java、nodejsなどのサーバー側言語を使用したhttpリクエストでこれを行うことができます。

于 2012-09-22T21:14:27.413 に答える
0

これはブラウザのセキュリティ機能です... AJAX を使用して他のドメインに保存されているコンテンツにアクセスすることはできません。「クロスドメイン AJAX リクエスト」の Google

于 2012-09-22T21:13:48.943 に答える