试图接收来自维基百科API在Codepen上的回应。答复应该是一个JSON,我试图console.log。访问控制允许来源与维基百科API与Javascript
在控制台然而,我看到了一个错误:
跨来源请求阻止:同源策略不允许在https://en.wikipedia.org/w/api.php?action=opensearch&search=earth&format=json读取远程资源。 (原因:缺少CORS头'Access-Control-Allow-Origin')。
我读过不少关于以上CORS和允许来源这几天试着去了解,但出于某种原因,即使我想我明白......我不能设法实现:)
然而,最有趣的是 - 即使控制台显示这样的错误消息,如果我看看开发人员工具“网络”选项卡中的实际响应,我会看到json响应的所有荣耀!
这将是很好的解释如何可能?
Codepen链接here
var xhrObject = new XMLHttpRequest();
xhrObject.onreadystatechange = function() {
if (xhrObject.readyState === 4 && xhrObject.status === 200) {
console.log(xhrObject.responseText);
}
};
xhrObject.open(
"POST", "https://en.wikipedia.org/w/api.php?action=opensearch&search=earth&format=json", true
);
xhrObject.send();
在此先感谢
所以Wiki API信任我的浏览器,但是我无法从Codepen访问它,因为它尚未被批准? 这是怎么做的,通过添加请求标头什么域? Codepens或维基? – KarmaKing
维基百科必须这样做。如果你能够给予你许可,那将是愚蠢的。 – Quentin