Javascript iTunes搜索API不想给我它的数据

Javascript iTunes搜索API不想给我它的数据,javascript,xmlhttprequest,itunes,Javascript,Xmlhttprequest,Itunes,我在iTunes搜索API方面遇到了一些问题。当我通过URL直接访问数据时,我可以看到数据,但当我通过简单的脚本尝试时,数据不会加载 var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://itunes.apple.com/search?term=Reeder&country=fr&entity=software'); xhr.send(); xhr.addEventListener('readystatechange'

我在iTunes搜索API方面遇到了一些问题。当我通过URL直接访问数据时,我可以看到数据,但当我通过简单的脚本尝试时,数据不会加载

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);

有人知道发生了什么吗?

这是你浏览器的安全功能。。。您不能使用AJAX访问存储在其他域下的内容。谷歌跨域AJAX请求

您的请求违反了


简而言之,您不能对其他域进行ajax调用。您可以通过使用服务器端语言(如php、java、nodejs或其他)的http请求来完成此操作。

正如其他人所说,您的请求违反了同源策略

我不久前遇到了这个问题,并使用YQL创建了一个JSONP回调,将数据包装在javascript函数中。换句话说,脚本标记不受同源策略的约束

YQL: JSONP:我假设你知道JSON

您可以自己学习如何使用JSONP的细节,所以我只给您举个例子

您的YQL查询将是select*from json,其中url=http://itunes.apple.com/search?term=Reeder&country=fr&entity=software'. 如果在控制台中将类型更改为JSON,则可以为JSONP指定回调。慰问:


创建一个脚本标记并将上面的链接/url设置为源。如您所见,JSON数据用函数名包装。您应该已经定义了回调函数,在加载YQL/JSON源代码时将调用该函数。然后,该回调函数处理JSON数据。

您将代码放在哪里?