angularjs - $http.get 使用 Ionic v1 和 Firebase 托管返回 index.html
问题描述
我们目前有一个 Ionic v1 项目,它调用作为 Google App Engine 应用程序实现的 API。此 Ionic 应用程序与 Ionic 服务、PhoneGap 一起运行,并在部署到 Android/iOS 时运行。
我们现在正在尝试使用 Firebase 托管部署到网络。
最初的 HTML/JS 代码都可以正常运行,直到我们到达对 Google App Engine 的 $http.get 调用。然后发生的事情是请求到达 GAE 服务器并在那里正确处理并发送回响应。但在客户端代码中,response.data 属性是 Firebase 应用程序的 index.html 的内容,而不是 GAE 提供的响应。
我们不知道为什么会发生这种情况,或者如何解决它,但这里有一些相关的事实:
- 当我们使用 PhoneGap 或通过 Google Playstore 在设备上运行应用程序时,我们访问 GAE 的 URL 与我们从浏览器访问 GAE 的 URL 相同。但是,当我们通过“ionic serve”运行应用程序时,我们必须使用代理来解决 CORS 问题。我们所做的是在 Ionic 代码中指定一个简化的 URL,然后在一个名为“ionic.project”的文件中提供该简化 URL 到 GAE 实际 URL 的映射,该文件如下所示:
{
"name": "proxy-example",
"app_id": "",
"proxies": [
{
"path": "/api",
"proxyUrl": "http://cors.api.com/api"
}
]
}
当我们尝试通过“firebase deploy”或“firebase serve”部署应用程序时,我们必须在 $http.get 调用中使用 URL 的代理版本。否则,呼叫根本不会到达 GAE 服务器。目前尚不清楚 Firebase 是如何知道将“ionic.project”用于代理映射的。
我们没有使用“Angularfire”,仅使用 Ionic 1.x 打包的标准 AngularJS 库
谢谢你尽你所能的帮助。
解决方案
推荐阅读
- c++ - C++:如果我想将一系列数字输入到数组中,而不受我需要输入的数字数量的限制。我该怎么做?
- c# - C# WCF 服务从单向服务获取客户端中的状态代码
- discord.js - {update}Discord 机器人只发送消息但不发送图片
- angular - 子组件中的 ngbDropdownToggle
- laravel - 禁止:机器人被用户阻止 - laravel irazasyed/telegram-bot-sdk
- python - “错误信息”: ”[
, ]", 更新 DynamoDb 时 - java - 与参数具有相同原始类型的构造函数
- python - python pandas read_csv发出证书验证失败:证书链中的自签名证书(_ssl.c:1123)
- ruby-on-rails - Rails DRY 全局变量/函数
- javascript - 基于以下规则进行 Javascript 子字符串操作的最有效方法