【发布时间】:2024-05-21 12:30:02
【问题描述】:
试图从 Codepen 上的 Wikipedia API 接收响应。回复应该是我正在尝试 console.log 的 json。
在控制台中我看到一个错误:
跨域请求被阻止:同源策略不允许读取位于https://en.wikipedia.org/w/api.php?action=opensearch&search=earth&format=json 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。
在过去的几天里,我读了很多关于 CORS 和 Allow-Origin 的文章以试图理解,但出于某种原因,即使我认为我理解了......我无法实现 :)
然而,最有趣的是——即使控制台显示这样的错误消息,如果我查看开发人员工具网络选项卡中的实际响应,我还是看到了 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();
提前致谢
【问题讨论】:
标签: javascript json cors wikipedia-api