我正在尝试消耗第三方的响应。它在 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);
最佳答案
Access-Control-Allow-Origin
和 co 是响应 header 。您向其发出请求的服务器 ( api.<third_party_sitename>.com
) 必须在响应中设置它们。
它们不是请求 header 。您的 JavaScript 无法授予自身从任意第三方站点读取数据的权限。
关于javascript - 设置 CORS header 在 Chrome、Firefox 或移动浏览器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33254420/