设置CORS标头在Chrome,Firefox或移动浏览器中不起作用

时间:2015-10-21 08:29:21

标签: javascript cors

我正在尝试消费第三方的回复。它在IE中运行良好但不能在Chrome,Firefox或我的移动浏览器上运行。我谷歌并尝试了一些代码,但仍面临同样的问题。我知道它的 CORS 错误,并且有很多参考或教程可用,我想知道为什么我的代码不起作用,是什么错误?

var xhr = new XMLHttpRequest();
        xhr.open("GET", "http://api.<third_party_sitename>.com/json/feeds?system=" + abc);
        xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
        xhr.setRequestHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, HEAD");
        xhr.setRequestHeader("Access-Control-Allow-Headers", "X-Requested-With");
        xhr.setRequestHeader("Access-Control-Max-Age", "1728000");
        //xhr.setRequestHeader("Connection", "Keep-Alive");
        xhr.setRequestHeader("Content-Type", "application/json");
        xhr.onreadystatechange = function () {
            if (this.readyState == 4) {
                var datax = JSON.stringify(this.responseText);
                var jsonObj = jQuery.parseJSON(datax);

                 displayPin(jsonObj);

            }
        };
        xhr.send(null);

1 个答案:

答案 0 :(得分:2)

Access-Control-Allow-Origin和co是响应标头。您向(api.<third_party_sitename>.com)发出请求的服务器必须在响应中设置它们。

它们不是请求标头。您的JavaScript不允许自己从任意第三方网站读取数据。