Access-Control-Allow-Origin 不允许

Posted

技术标签:

【中文标题】Access-Control-Allow-Origin 不允许【英文标题】:is not allowed by Access-Control-Allow-Origin 【发布时间】:2012-03-08 14:50:56 【问题描述】:

我正在尝试从本地服务器向 youtube 服务器发送请求,但 chrome 控制台显示以下错误

代码是

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 回调函数来完成。但我不知道如何实现它 请指导我

【问题讨论】:

【参考方案1】:

由于浏览器的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

【讨论】:

以上是关于Access-Control-Allow-Origin 不允许的主要内容,如果未能解决你的问题,请参考以下文章

PHP没有按顺序执行

跨域请求被阻止 Symfony/AngularJS

C# MVC js 跨域

PHP Ajax 跨域问题最佳解决方案

PHP Ajax 跨域问题最佳解决方案

PHP Ajax 跨域问题最佳解决方案