【发布时间】:2018-05-18 20:30:55
【问题描述】:
我需要从其他域的外部 API 获取一些数据。 我使用测试应用程序,在 localhost 上运行,但出现错误:
Access-Control-Allow-Origin 不允许Origin http://localhost。
我尝试通过 get 方法访问:https://api.coinmarketcap.com/v1/ticker/
我做了很多搜索并且:
- 我知道我可以通过使用 node.js、CURL 以及在开玩笑测试中运行我的前端代码来询问该 API
- 通过使用 chrome 扩展 - https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en 也一切正常
但不幸的是,在我的页面加载时仅通过 AJAX 请求,我无法访问该 API 并收到错误。
我的预测是用户代理 (chrome) 会以某种方式阻止我的请求。 我无法使用 chrome 扩展程序,因为我还想通过无法获取桌面扩展程序的手机访问我的网站。
目前我的解决方案是“代理”,可以访问该 API 和流程的 node.js 服务器如下所示:
FE
-- 提问-->
是
-- ASK API -->
-- 回应-->
是
-- 对 FE 的响应 -->
FE 展示一切
FE - 前端,BE - 后端(node.js 代理),API - 外部 API
但我想避免在 BE 上编写不必要的代码。也许有一些解决方案? 就像一些神奇的标题会告诉 chrome 让我在没有任何额外扩展的情况下传递到外部域?
【问题讨论】:
-
不,你无法在前端绕过 CORS。
-
我不认为浏览器允许没有 Access-Control-Allow-Origin 标头。
标签: javascript api cors