我正在尝试从本地服务器向youtube服务器发送请求但是chrome控制台显示以下错误
Access-Control-Allow-Origin 不允许代码是
http.open("POST", url, true);
http.setRequestHeader("Authorization", "AuthSub token=" + AccessToken);
http.setRequestHeader("GData-Version", 2);
http.setRequestHeader("X-GData-Key", "key=" + dev_key);
http.setRequestHeader("Content-Length", sendXML.length);
http.setRequestHeader("Content-Type", "application/atom+xml; charset=UTF-8");
http.onreadystatechange = function()
{
if(http.readyState == 4) {
alert(http.responseXML);
alert(http.responseText);
document.getElementById("response").innerHTML=http.getAllResponseHeaders();
}
}
http.send(sendXML);
这将通过实现JSONP回调函数来完成。但我不知道如何实施它 PLZ指导我
答案 0 :(得分:5)
由于浏览器same origin policy,您无法对YouTube API使用XMLHttpRequest。相反,您应该使用YouTube API的json-p功能:
http://code.google.com/apis/youtube/2.0/developers_guide_json.html
编辑:截至2012年5月18日,YouTube API支持CORS:http://apiblog.youtube.com/2012/05/unlocking-javascripts-potential-with.html