2016-10-07 41 views
0

我正在开发ASP.NET MVC应用程序。我正在使用Angular JS。现在我正在做的是将数据发布到服务器并从服务器获取json结果。但现在我的问题是,它发送数据到服务器,但响应数据到客户端或$ http成功回调不起作用。但错误回调工作。请参阅下面的代码。

我的服务器的操作方法

public JsonResult Login(LoginViewModel model) 
     { 
      FormError formError = new FormError(); 
      if (ModelState.IsValid) 
      { 




//I do nothing here yet 
     } 

     formError.Status = false; 
     List<string> errors = new List<string>(); 
     foreach (ModelState modelState in ViewData.ModelState.Values) 
     { 
      foreach (ModelError error in modelState.Errors) 
      { 
       errors.Add(error.ErrorMessage); 
      } 
     } 
     formError.ErrorMessages = errors; 
     // If we got this far, something failed, redisplay form 
     return Json(formError); 
    } 

我发送这样的角度

$http.post('Login', { UserName: $scope.email, Password: $scope.password }, function (response) { 
       alert('success') 
      }).error(function (error) { 
       alert('Opps! Something went wrong!'); 
      }) 

在角码,如果发生内部错误,错误回调调用。此外,数据可以正确传递给post方法,并可以在服务器上记录。

正如你可以在这里看到的动作成功返回数据:

enter image description here

但在客户端,角JS $ HTTP成功回调不工作。我的代码有什么问题?

回答

1

您尚未向$http.post方法添加成功回调。 $http.post的签名是post(url, data, config?),您似乎正在尝试使用它,如$http.post(url, data, callback)。将其更改为:

$http.post('Login', { UserName: $scope.email, 
         Password: $scope.password }).then(
    function (response) { 
    alert('success') 
    }, function (error) { 
    alert('Opps! Something went wrong!'); 
    }); 
+0

非常感谢。我的错。 –

+0

没问题。也请将答案标记为已接受。 – Hampus