Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs+;类固醇:$http-won';无法在应用程序上获取url,但它可以在浏览器上运行_Angularjs_Cordova_Ios Simulator_Steroids - Fatal编程技术网

Angularjs+;类固醇:$http-won';无法在应用程序上获取url,但它可以在浏览器上运行

Angularjs+;类固醇:$http-won';无法在应用程序上获取url,但它可以在浏览器上运行,angularjs,cordova,ios-simulator,steroids,Angularjs,Cordova,Ios Simulator,Steroids,我正在使用Appgyver类固醇和angularjs构建一个web应用程序,该应用程序与另一个域上的后端服务器通信 以下是相关代码(故意装傻;我试图隔离问题): 控制器: // App. var app = angular.module('app', []); // signup controller. app.controller('SignupCtrl', function($scope, $http) { $scope.signup = function() {

我正在使用Appgyver类固醇和angularjs构建一个web应用程序,该应用程序与另一个域上的后端服务器通信

以下是相关代码(故意装傻;我试图隔离问题):

控制器:

// App.
var app = angular.module('app', []);

// signup controller.
app.controller('SignupCtrl', function($scope, $http) {
    $scope.signup = function() {
        $http({
            method: 'GET',
            url: 'http://localhost:8080/watch/abcde/eta',
            responseType: 'json'
        }).success(function(data, status, headers, config) {
            console.log('Success!');
        }).error(function(data, status, headers, config) {
            console.log(status);
        });
    };
});
视图:


试验
点击我!
我正确设置了服务器,以便启用CORS。我在Chrome和Safari中测试了代码,它工作正常:我从服务器得到了正确的JSON响应

但是,当代码封装在类固醇应用程序中并在iOS模拟器中运行时,它不会向服务器发出请求。我得到一个等于0的状态代码,在我设置的数据包分析器中,或者在我的服务器日志(在本地主机上运行,如应用程序)上,我看不到任何请求的迹象。我还没有试过真正的设备

请注意,AngularJS似乎配置正确,因为我在应用程序的其他部分使用它,并且它在iOS模拟器中正常工作(尽管这些其他控制器不执行任何HTTP调用)

你知道会出什么问题吗

编辑


多亏了他的回答,我意识到iOS模拟器是在虚拟机上运行的,这意味着在其中调用localhost是没有意义的。我改用127.0.0.1:8080,它工作正常。

您将url指定为localhost。使用您的电脑的IP,而不是打开服务器。Localhost只在本地工作,服务器在本地。

好吧,我在本地运行服务器和类固醇应用程序,所以我先驳回了你的回答。但是它帮助我意识到iOS模拟器是一个在虚拟机上运行的模拟器,这意味着在它里面调用localhost是没有意义的。我用它来代替,而且它很有效。非常感谢Marcin!
<div ng-app="app" ng-controller="SignupCtrl">
  <h1>Test</h1>
  <button ng-click="signup()">Click Me!</button>
</div>