Javascript iTunes搜索API不想给我它的数据
我在iTunes搜索API方面遇到了一些问题。当我通过URL直接访问数据时,我可以看到数据,但当我通过简单的脚本尝试时,数据不会加载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'
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数据。您将代码放在哪里?