无法从 Wikipedia API 获取数据

Posted

技术标签:

【中文标题】无法从 Wikipedia API 获取数据【英文标题】:Cannot fetch data from Wikipedia API 【发布时间】:2018-07-14 06:06:43 【问题描述】:
let dataObj = [];
const query = 'marvel';
fetch(`https://en.wikipedia.org/w/api.php?action=query&titles=$query&prop=revisions&rvprop=content&format=json&formatversion=2`)
  .then(data => data.json())
  .then(data => dataObj.push(data))
  .catch(err => console.log(err));

这是我收到的错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'https://s.codepen.io' 不允许访问。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我将模式设置为no-cors,但还是不行。

【问题讨论】:

【参考方案1】:

尝试添加查询参数 origin=* 以帮助解决 CORS 问题:

https://en.wikipedia.org/w/api.php?action=query&titles=$query&prop=revisions&rvprop=content&format=json&formatversion=2&origin=*

希望对您有所帮助!

【讨论】:

请不要介意我问,这里的起源是什么。我必须离开它 = *- 还是我需要从某个地方获取价值 查看这个问题,它描述了 CORS 和 Wikipedia API ***.com/q/23952045/5059657 。您实际上是在设置源头以匹配origin=* 的任何源。对于未经过身份验证的请求,这足以获取您需要的数据。试一试,看看它对你有什么作用。 如果您正在执行经过身份验证的请求。您必须根据您创建的 API 帐户设置源以匹配您的服务器/客户端位置。 origin=* 足以用于您未经过身份验证的基本数据检索。

以上是关于无法从 Wikipedia API 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

无法从 wikipedia API 恢复图像并将其显示在另一个视图控制器中

如何使用 PHP 从 Wikipedia API 获取结果?

如何通过 API 从***获取地标地点的标题?

如何使用Wikipedia的API获取Wikipedia内容?

从 Wikipedia 检索数据并使用 angularjs 显示它

使用 Wikipedia API 获取图像 URL,但有些图像不返回 URL,为啥?