所以我有一個簡單的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標頭必須由服務器添加。 –