2014-06-12 31 views
0

我对Angular很陌生,试图对一个简单的Rest服务调用一个简单的“Hello World”webservice调用,当我点击它时,我已经验证返回“Hello World”。

我有3个警报的方法。我看到“In method”警报,然后看不到任何其他警报。我附加了提琴手,Web服务请求从未制作过。我必须在这里忽略一些基本的东西,我会认为....关于我可能错过了什么的任何想法?

Fiddler显示Web服务调用成功,我可以看到来自Web服务的结果,但我使用Chrome的开发人员工具显示,对服务的调用正在被Angular内部的某些东西取消。

在此先感谢您提供的任何帮助。

  (function() { 

var app = angular.module("loginApp", ['ngResource']) 
    .config(function ($httpProvider) { 
     // Enable CORS 
     $httpProvider.defaults.useXDomain = true; 
     delete $httpProvider.defaults.headers.common['X-Requested-With']; 
    }); 

app.controller('LoginController', function ($scope, $http) { 
    this.loginImage = "images/ActiveView_ContentMgm_140x40.png"; 

    this.loginUser = function() { 
     var token = ""; 
     var loginUrl = "http://ten1.com/services/rest/demoservice.svc/Login"; 

     delete $http.defaults.headers.common['X-Requested-With']; 
     var result = $http({ method: 'GET', url: loginUrl, params: { userName: this.userName, passWord: this.passWord } }) 
     .success(function (data, status) { 
      $scope.status = status; 
      $scope.data = data; 
     }) 
     .error(function (data, status) { 
      $scope.data = data || "Request failed"; 
      $scope.status = status; 
     }); 

     token = data.Token; 
    }; 

}); 

})(); 更新:

现在我点击登录表单上的提交按钮,只是试图找回一个字符串,所以我可以验证与Web服务的基本通信。我的目标是传递用户名/密码并取回令牌。这里的形式:

    <form ng-submit="loginCtrl.loginUser()" novalidate> 
         <div class="form-group"> 
          <label for="exampleInputEmail1">Username</label> 
          <input type="text" class="form-control" style="border-radius:0px" ng-model="loginCtrl.loginForm.userName" placeholder="Enter username"> 
         </div> 
         <div class="form-group"> 
          <label for="exampleInputPassword1">Password </label> 
          <input type="password" class="form-control" style="border-radius:0px" ng-model="loginCtrl.loginForm.passWord" placeholder="Password"> 
         </div> 
         <button type="submit" class="btn btn-sm btn-default">Log in</button> 
+0

你做跨域GET请求?也许看看这里:http://stackoverflow.com/questions/16085700/angularjs-http-get-is-getting-cancelled – pixelbits

+0

我检查了这篇文章,显然是我使用的角(1.2.17)版本不再支持$ httpProvider ....调用仍然被角度的东西取消,但实际的Web服务请求仍在工作 –

回答

2

进样$范围和$ HTTP到控制器中,而不是在你的loginUser()功能:

app.controller('LoginController', function ($scope, $http) { 
+0

谢谢,这让我成为那里的一部分。知道它必须是基本的东西。现在调用已经完成,但每次都是错误的,即使我手动打开了Web服务URL,它的功能仍然很好。试图现在排除故障。有什么想法吗? –

+0

更新:现在调用了,但每次都是错误的,即使在小提琴手中,web服务调用是成功的,并且我得到了我期待的数据。那么为什么它最终在“错误”部分,当fiddler显示调用工作得很好? –

+0

不确定,console.log(数据)在错误处理程序中显示的是什么? – pixelbits