javascript - 进行 api 调用时,CORS 策略已阻止获取错误
问题描述
当我尝试对kickstarter Staff pick json 端点进行 api 调用时出现以下错误
这就是错误的样子
localhost/:1从源“ http://localhost:3000 ”对“ https://www.kickstarter.com/discover/recommended?format=json ”的XMLHttpRequest 的访问已被 CORS 策略阻止:没有“访问控制” -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
解决方案
像这样尝试它,它应该可以工作:
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
推荐阅读
- r - 如何以 sqrt(x) 格式格式化 x 轴刻度标签?
- java - 为什么我收到 Stream Closed 错误?
- angularjs - Angularjs - 如何将 Bootstrap 导入 Karma-Jasmine 进行测试
- haskell - Haskell attoparsec 从文本文件解析时无法识别换行符
- jquery - jquery nextall 从中删除所有下一个元素
- python - django中对url后缀的支持
- amp-html - 在征得用户同意时禁用默认行为
- php - 在 laravel elequent 中加入表格
- javascript - 在表格中显示 JavaScript 代码的值
- php - Laravel 列出所有用户父母的 id