В настоящее время у нас есть проект 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.
Мы не знаем, почему это происходит или как это исправить, но вот некоторые важные факты:
- Когда мы запускаем приложение на устройстве с помощью 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"
}
]
}
Когда мы пытаемся развернуть приложение через «firebase deploy» или «firebase serve», мы должны использовать прокси-версию URL в нашем вызове $ http.get. В противном случае вызов не достигает сервера GAE вообще. Неясно, как Firebase знает, как использовать «ionic.project» для отображения прокси.
Мы не используем «Angularfire», только стандартную библиотеку AngularJS, которая поставляется с Ionic 1.x
Спасибо за любую помощь, которую вы можете предложить.