进行API调用时,CORS策略阻止了获取错误

时间:2018-11-10 20:15:39

标签: javascript ajax api

当我尝试对kickstarter Staff pick json endpoint进行api调用时出现以下错误

这就是错误的确切样子

  

localhost /:1在以下位置访问XMLHttpRequest   来自的“ https://www.kickstarter.com/discover/recommended?format=json”   原产地“ http://localhost:3000”已被CORS政策禁止:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。

我以前曾遇到此错误,但那是我尝试进行本地API调用时的错误。

我知道我可以在我的浏览器中启用cors,这可能可以修复该错误,但我正尝试避免该错误。

有什么想法或解决方法吗?

我正在使用axios进行api调用

axios.get("https://www.kickstarter.com/discover/recommended?format=json").then(response => {

[更新:] 有人还能帮我弄清楚如何在Promise中使用它。

 let Base_url = axios.get(base_url)
  let StaffPick = axios.get(staffPick)


   return Promise.all(Base_url, StaffPick).then(response => {

员工选择的位置是https://www.kickstarter.com/discover/recommended?format=json base_url 是:http://coincap.io/map

1 个答案:

答案 0 :(得分:2)

尝试这样,它应该可以工作:

fetch(
  'https://cors-anywhere.herokuapp.com/https://www.kickstarter.com/discover/recommended?format=json')
  .then(response => response.json())
  .then(data => console.log(data));

或与axios相当的产品...

这是代码沙箱上的实时演示:https://codesandbox.io/s/ox7wz9ny15

我们不是使用自己的代理服务器,而是使用以下服务器:https://github.com/Rob--W/cors-anywhere

注意:如果您想在生产中使用它,我建议您编写自己的代理服务器...有关CORS的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS