*** API 响应中缺少 CORS 标头“Access-Control-Allow-Origin”[重复]

Posted

技术标签:

【中文标题】*** API 响应中缺少 CORS 标头“Access-Control-Allow-Origin”[重复]【英文标题】:CORS header ‘Access-Control-Allow-Origin’ missing from Wikipedia API response [duplicate] 【发布时间】:2018-05-23 19:12:24 【问题描述】:

我正在尝试使用 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】:

您需要在***API查询参数中添加origin=*

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? 的答案。

【讨论】:

以上是关于*** API 响应中缺少 CORS 标头“Access-Control-Allow-Origin”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

跨域请求被阻止:(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)

CORS 标头“Access-Control-Allow-Origin”缺少 Laravel 5.4

Nginx后缺少响应标头[关闭]

django-cors-headers 和 nginx 配置:预检响应缺少 CORS 标头

跨域请求被阻止:CORS 标头“Access-Control-Allow-Origin”缺失

在 Azure Web 应用/Azure API 上部署时缺少 CORS 标头