Как получить данные из Google Cloud Platform через API из мобильного приложения на Cordova? - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Cordova для упаковки своих приложений. Как это может быть, приложение работает в браузере localhosts пользователя:

http://localhost:8100/

И я хочу получить данные из GCP, но получаю ошибку CORS (не конечно, конечно;) (замените api_key на мой настоящий api_key):

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, но данные по-прежнему не доставляются.

**

Когда я пытаюсь получить данные через API Node.js (* backend), данные доступны для поступления, но это усложняет и замедляет процесс, поскольку вам приходится совершать два вызова для одних и тех же данных.

Есть ли какое-то решение для этого?

1 Ответ

0 голосов
/ 26 апреля 2018

Я решил эту проблему.

Поскольку проблема возникает только при локальном хосте или при загрузке, я решил ее решить, отключив CORS в самом браузере.

Установите это: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

Кстати, обратите внимание, что вы, вероятно, получите много ошибок от таких сайтов, как Google и Facebook.

Я нашел лучший способ сделать это с помощью API Node.js, выступающего в роли прокси-сервера только во время разработки.

При изменении пути к производству я напрямую обращаюсь к Google apis и экономлю время и трафик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...