维基百科API响应中缺少CORS标题“Access-Control-Allow-Origin”

时间:2017-12-09 20:44:46

标签: reactjs rest cors axios wikipedia-api

我试图在reactJS中使用axios从Wikipedia API获取数据。 这是我的获取请求

axios.get('https://en.wikipedia.org/w/api.php?action=opensearch&search=lol&format=json&callback=?')
     .then((response) => {
       console.log(response);
     })
    .catch((error)=>{
       console.log(error);

    });

我收到了这个错误:

  

阻止跨源请求:同源策略禁止读取   远程资源在   https://en.wikipedia.org/w/api.php?action=opensearch&search=lol&format=json&callback=?   (原因:缺少CORS标题'Access-Control-Allow-Origin'。

然后我将启动脚本更改为:

HTTPS=true yarn start

我的服务器以https启动,但错误仍然存​​在。我也尝试过将json更改为jsonp,如其他线程所示,但它似乎也没有帮助。

1 个答案:

答案 0 :(得分:2)

您需要将origin=*添加到Wikipedia API查询参数:

axios.get('https://en.wikipedia.org/w/api.php?origin=*&action=opensearch&search=lol')
     .then((response) => {
       console.log(response);
     })
    .catch((error)=>{
       console.log(error);
    });
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

有关背景信息,请参阅 Does Wikipedia API support CORS or only JSONP available? 的答案。