2017-03-15 5 views
0

私はJQueryを使ってitunes APIにアクセスできます。次のことは、サーバーなしでも完璧に動作します。iTunes APIアクセスはJQuery経由では動作しますがXMLHttpRequestオブジェクトでは動作しないのはなぜですか?

$(function(){ 

    var apiURL = "https://itunes.apple.com/search?term=funk&media=music&callback=?"; 

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

通常のXMLHttpRequestオブジェクトを使用してアクセスしたいと思います。私はそれを動作させる方法が不思議です。あなたのURLクエリ文字列でのコールバックを持っているので

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'https://itunes.apple.com/search term=funk&media=music&callback=?'); 
xhr.send(); 

答えて

1

は、getJSONはJSONP使用しています。 http://api.jquery.com/jquery.getjson/#jsonp

これは、XHRではなくスクリプトタグを使用してデータを読み込みます。 Access-Control-Allow-Originが設定されていないため、特定のリソースをドメイン間でロードする唯一の方法はJSONPです。