【问题标题】:Cannot fetch data from Wikipedia API无法从 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,但还是不行。

【问题讨论】:

    标签: javascript wikipedia-api fetch-api


    【解决方案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 stackoverflow.com/q/23952045/5059657 。您实际上是在设置源头以匹配origin=* 的任何源。对于未经过身份验证的请求,这足以获取您需要的数据。试一试,看看它对你有什么作用。
    • 如果您正在执行经过身份验证的请求。您必须根据您创建的 API 帐户设置源以匹配您的服务器/客户端位置。 origin=* 足以用于您未经过身份验证的基本数据检索。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多