所以我有一个简单的getJSON()函数:用Origin处理HTTP://本地主机不被访问控制允许来源允许在没有CORS头
$.getJSON(apiURL, function(data) {
console.log('success');
if (data.results.length > 0) {
$(song).find('source').attr('src', data.results[0].previewUrl);
song.play();
}
else {
console.log('No match found for track information specified.');
}
});
apiURL是iTunes的API网址,如下定义:
var apiURL =" https://itunes.apple.com/search" +
"?term=" + artist + "+" + album + "+" + title +·
"&media=music&entity=musicTrack&callback=?";
我得到的是Access-Control-Allow-Origin错误不允许的经典Origin localhost。我在这里找到了一些答案,他们通常归结为使用$ .ajax并将dataType设置为'jsonp',或使用.getJSON并提供'callback =?'。参数到URL,我已经在上面尝试过了。这些似乎都没有工作,我听说他们可能已经过时了。什么是最新的,最新的处理这个问题的建议?除了收集服务器上的数据。
而不CORS标头,不可能不使用服务器端代理,除非远程API支持JSONP。 –
是否可以使用jQuery添加CORS头?另外,iTunes API似乎支持JSONP,讨论'callback =?'参数在其文档中,但我仍然得到该错误.... – user1427661
不,Cors标头必须由服务器添加。 –