$ http.get使用Ionic v1和Firebase托管返回index.html

时间:2018-09-05 21:07:11

标签: angularjs firebase google-app-engine ionic-v1

我们目前有一个Ionic v1项目,该项目调用作为Google App Engine应用程序实现的API。该Ionic应用程序可与Ionic服务,PhoneGap一起运行,并且在部署到Android / iOS时也可以运行。

我们现在正在尝试使用Firebase托管将其部署到Web。

最初的HTML / JS代码都可以正常运行,直到我们到达Google App Engine的$ http.get调用为止。然后发生的是,该请求到达了GAE服务器,并在那里正确处理了响应并发回了响应。但是在客户端代码中,response.data属性是Firebase应用程序index.html的内容,而不是GAE提供的响应。

我们不知道为什么会发生这种情况,或如何解决它,但以下是一些相关事实:

  1. 当我们使用PhoneGap或通过Google Playstore在设备上运行应用程序时,如果我们从浏览器访问GAE,则访问GAE的URL就是相同的URL。但是,当我们通过“离子服务”运行应用程序时,必须使用代理来解决CORS问题。我们要做的是在Ionic代码中指定一个简化的URL,然后在一个名为“ ionic.project”的文件中提供该简化URL到GAE实际URL的映射,如下所示:

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

  1. 当我们尝试通过“ firebase部署”或“ firebase服务”部署应用程序时,必须在$ http.get调用中使用URL的代理版本。否则,该呼叫将根本无法到达GAE服务器。尚不清楚Firebase如何知道使用“ ionic.project”进行代理映射。

  2. 我们不使用“ Angularfire”,而是使用与Ionic 1.x打包在一起的标准AngularJS库

感谢您提供的任何帮助。

0 个答案:

没有答案