我正在尝试消费第三方的回复。它在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);
答案 0 :(得分:2)
Access-Control-Allow-Origin
和co是响应标头。您向(api.<third_party_sitename>.com
)发出请求的服务器必须在响应中设置它们。
它们不是请求标头。您的JavaScript不允许自己从任意第三方网站读取数据。