【问题标题】:Cannot connect to server using http service when emulating ionic application模拟离子应用程序时无法使用 http 服务连接到服务器
【发布时间】:2016-06-01 15:28:49
【问题描述】:

我已经构建了一个简单的 ionic 应用程序来测试我的 api。但是我遇到了问题,因为当我以实时重载模式(-l 选项)运行它时,一切正常(ionic run ios -l)。但是当我没有使用 live-reload (ionic run ios) 时,我的应用程序似乎出错了。我无法调试我的应用出错的地方,因为这需要不会发生错误的实时重新加载选项。

我已经多次重新安装白名单插件。我将以下行添加到小部件区域内的 config.xml 中。

<access origin="*"/>
<allow-intent href="*"/>
<allow-navigation href="*"/>

以及我的 index.html 中的以下行

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src &apos;self&apos; &apos;unsafe-inline&apos;; script-src &apos;self&apos; &apos;unsafe-inline&apos; &apos;unsafe-eval&apos;">

这是我的控制器代码

var url="/api/event/new"

.controller('Test', function($http, $scope) {
    $http.get(url).then(function(data) {
        $scope.allEvents = {
            all : function() {
                return data.data;
            },
            remove: function(Events) {
                data.data.splice(data.data.indexOf(Events), 1);
            },
            get : function(_id) {
                for (var x in data.data) {
                    if(data.data[i]._id == _id) {
                        return data.data[i];
                    }
                }
                return null;
            }
        };
        $scope.isNotConnected = false;
    }, function(error) {
        $scope.allEvents = {
            all : function() {
                return [{"title" : "Connection error!"}];
            }
        }
        $scope.isNotConnected = true;
        console.log(error);
    });
})

这是我的离子信息

Cordova CLI: 6.1.1
Ionic Framework Version: 1.3.1
Ionic CLI Version: 1.7.15
Ionic App Lib Version: 0.7.2
ios-deploy version: 1.8.6 
ios-sim version: 5.0.8 
OS: Mac OS X El Capitan
Node Version: v5.9.1
Xcode version: Xcode 7.3 Build version 7D175 

【问题讨论】:

  • 如果我使用离子服务。我根本无法连接到我的服务器。即使在我将代理添加到 ionic.project 之后。
  • 您获得的网址是 /api/event/new,但这并不能真正告诉应用程序该去哪里。听起来您需要专门告诉控制器服务器的主机名
  • 不久前我遇到了类似的问题,检查一下这个问题/答案,看看它是否有帮助stackoverflow.com/questions/36731512/…
  • 致 Jaron 那她 - 在我的配置文件中,我添加了“代理”:[{“路径”:“/api”,“proxyUrl”:}]。我保证我的服务器正在运行(我用浏览器对其进行了测试)。
  • 我不熟悉 Ionic 配置,但我查了一下,这似乎是正确的。如果我想到其他任何事情,我会告诉你的

标签: javascript angularjs api ionic-framework


【解决方案1】:

使用远程调试 - iOS 和 Safari

您可以避免使用实时重新加载并使用 Safari 调试来查看问题所在。

Safari 可用于在连接的 iOS 设备上调试 Ionic 应用程序。 首先,我们需要在连接的设备上启用 Web Inspector。网络 检查器可以在设置 > Safari > 高级下找到。接下来,头 转到 Mac 上的 Safari 并在菜单中启用 Show Develop menu Safari > 首选项 > 高级下的栏。连接的设备应 现在出现在“开发”菜单中。从那里,您可以检查并使用 用于调试应用程序的 Safari 开发者工具!

来源:http://ionicframework.com/docs/cli/run.html

【讨论】:

  • 如果我在我的 iOS 设备和我的 Mac 上都启用了 Web 检查。我必须首先为我的离子应用程序服务。然后我使用我在设备上获得的网址,对吗?
  • 不,您在 iOS 设备或模拟器上运行您的应用程序并使用 safari 的远程调试,您的设备/模拟器将显示为已连接的设备,您可以直接对其进行调试。
  • 哦,我明白了。谢谢
猜你喜欢
  • 2015-07-19
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 2010-10-13
相关资源
最近更新 更多