代码之家  ›  专栏  ›  技术社区  ›  Raz

如何从Cordova上的移动应用程序通过API从Google云平台获取数据?

  •  1
  • Raz  · 技术社区  · 7 年前

    我正在使用Cordova包装我的应用程序。该应用程序可以在用户的localhosts浏览器上运行:

    http://localhost:8100/
    

    我想从GCP获取数据,但我收到了一个CORS错误(当然不是,当然不是;)(用我的真实api\U密钥替换api\U密钥):

    Failed to load https://maps.googleapis.com/maps/api/directions/json?origin=Tel+Aviv&destination=Shoham&key=my_api_key: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.
    

    现在,原因很明显:他们不想公开API数据,也不想偷盗,但我找不到任何方法将我的应用程序设置为可用于获取这些数据的程序。

    我的应用程序在Android和iOS上运行。

    我也尝试过,只是为了测试,通过GCP平台管理器禁用任何限制或限制,但仍然无法提供数据。

    **

    当我试图通过节点获取数据时。js API(*后端), 数据是可以访问的,但这会使事情变得更加复杂和缓慢,因为您必须对同一数据进行两次调用。

    这有什么解决办法吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Raz    7 年前

    我解决了这个问题。

    由于该问题仅在从localhost或livereload执行时发生,因此我发现可以通过在浏览器本身中禁用CORS来解决它。

    安装此: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

    顺便说一句,你可能会从Google和Facebook等网站上收到很多错误。

    我找到了通过节点执行此操作的最佳方法。js API仅在开发期间用作代理。

    在改变生产路径的同时,我直接调用Google API,节省了时间和带宽。