Angular JS $http POST 在 ASP.NET MVC 中没有成功响应

Angular JS $http POST not responding on success in ASP.NET MVC

我正在开发 ASP.NET MVC 应用程序。我正在使用 Angular JS。现在我正在做的是 post 将数据发送到服务器并从服务器获取 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);
    }

我在angular

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

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

如你所见,操作成功return数据:

但是在客户端,angular js $http 成功回调不工作。我的代码有什么问题?

您尚未向 $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!');
   });