- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
尝试从 Codepen 上的维基百科 API 接收响应。回复应该是一个我正在尝试控制台的 json.log。
但是在控制台中我看到一个错误:
跨源请求被阻止:同源策略不允许读取位于 https://en.wikipedia.org/w/api.php?action=opensearch&search=earth&format=json 的远程资源. (原因:缺少 CORS header “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();
提前致谢
最佳答案
将 origin=*
添加到您使用的维基百科 URL 的查询参数中,请求将起作用。
要使对维基百科 API 的 JavaScript Fetch/XHR 请求有效,您必须在 URL 查询参数中包含 origin=*
——根据 the CORS-related docs for the Wikipedia backend :
For anonymous requests,
origin
query string parameter can be set to*
which will allow requests from anywhere.
所以问题中的URL应该是这样的:
"https://en.wikipedia.org/w/api.php?action=opensearch&origin=*&search=earth&format=json"
……甚至像这样:
"https://en.wikipedia.org/w/api.php?action=opensearch&origin=*&search=earth="
(也就是说,我认为您可以省略 format=json
,因为 JSON 输出似乎是默认设置。)
关于javascript - 带有 Javascript 的维基百科 API 的访问控制允许来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077084/
好吧,我看过一些帖子提到其他一些关于不使用 SP wiki 的帖子,因为它们很糟糕。 既然我们正在考虑在 SP 中创建 wiki,我需要知道为什么我们不应该让 6 名自动化开发人员来记录各种自动化流程
在 GitLab Wiki 部分,可以查看保存更改的历史记录。但是,当您单击提交链接时,它将显示该保存中存在的整个文件。有谁知道一种方法来区分提交以仅获取两个提交之间的差异? 这类似于它在 merge
我使用了 Wiki API 文档中的一些示例代码,但是当我输入搜索项时,没有任何反应。控制台中没有错误,什么也没有。如果我将 URL 输入到浏览器中,URL 本身就会起作用,所以我认为代码中的某些内容
我想在我的 wiki 中创建一个层次结构,如下所示: General FooPages Foo1 Foo2 Foo3 ODP Bar Baz 我想创建这些页
我正在尝试使用为 Python 制作的 Wikimapia 的 pymapia API,但无法理解如何正确使用它。 import pymapia as PyMapia a = PyMapia.PyMa
我正在开发适用于 iOS 的客户端应用程序,用于在 Mac OS X 服务器(Snow Leopard 和 Lion)上编辑内置的 Wiki/Blog。 看来我们可以使用 MetaWeblog 、At
我正在编写一些 URL 重写软件,我想从多个角度了解哪种 URL 方案更可取: 博客风格:my-chemistry-answer -- 为什么? -- (不可取,技术性) Wiki 风格:My_Che
我一直试图找到一种方法来在 Azure DevOps Wiki 中创建子页面的目录。我从其他 wiki 服务中找到了方法。 在 Confluence 中,他们有一个用于“ child 显示”的宏 我为
我是一名优秀的程序员,十分优秀!