$ http.get возвращает index.html, используя Ionic v1 и хостинг Firebase - PullRequest
0 голосов
/ 06 сентября 2018

В настоящее время у нас есть проект Ionic v1, который вызывает API, реализованный как приложение Google App Engine. Это приложение Ionic работает с Ionic serve, PhoneGap и при развертывании на Android / iOS.

Сейчас мы пытаемся выполнить развертывание в Интернете с помощью хостинга Firebase.

Все исходные коды HTML / JS работают правильно, пока мы не достигнем $ http.get-вызова в Google App Engine. Затем происходит то, что запрос достигает сервера GAE и обрабатывается там правильно, а ответ отправляется обратно. Но в клиентском коде свойство response.data - это содержимое файла index.html приложения Firebase, а не ответ, предоставленный GAE.

Мы не знаем, почему это происходит или как это исправить, но вот некоторые важные факты:

  1. Когда мы запускаем приложение на устройстве с помощью PhoneGap или через Google Playstore, URL-адрес, по которому мы обращаемся к GAE, является тем же URL-адресом, если мы обращались к GAE из браузера. Но когда мы запускаем приложение через «ionic serve», мы должны использовать прокси-сервер для решения проблемы CORS. Мы указываем упрощенный URL-адрес в коде Ionic, а затем предоставляем сопоставление этого упрощенного URL-адреса с фактическим URL-адресом GAE в файле с именем «ionic.project», который выглядит примерно так:

{ "name": "proxy-example", "app_id": "", "proxies": [ { "path": "/api", "proxyUrl": "http://cors.api.com/api" } ] }

  1. Когда мы пытаемся развернуть приложение через «firebase deploy» или «firebase serve», мы должны использовать прокси-версию URL в нашем вызове $ http.get. В противном случае вызов не достигает сервера GAE вообще. Неясно, как Firebase знает, как использовать «ionic.project» для отображения прокси.

  2. Мы не используем «Angularfire», только стандартную библиотеку AngularJS, которая поставляется с Ionic 1.x

Спасибо за любую помощь, которую вы можете предложить.

...