angularJS 中的 $http.post 在没有调试模式的情况下出错 only.in 调试模式有效 fine.why?

$http.post in angularJS goes in error in without debugging mode only.in debugging mode its works fine.why?

这是我的 javascript 代码

 $scope.addUser = function () {
                debugger;
                url = baseURL + "AddUser";
                $scope.objUser = [];
                $scope.objUser.push( {
                    "ID": '0',
                    "UserName": $scope.txtUserName,
                    "Password": $scope.txtPassword,
                    "Role":"Non-Admin"
                });

                $http.post(url,$scope.objUser[0])
                    .success(function (data) {
                        debugger;
                        alert("S");
                        window.location = "../View/Login.html";
                    }).error(function () {
                        debugger;
                        alert("e");

                    });
            }

这是我的服务器方法代码

[HttpPost]
        public int AddUser(UserModel user)
        {
            //_entity.Configuration.ProxyCreationEnabled = false;
            tblUser objUser = new tblUser();
            objUser.UserName = user.UserName;
            objUser.Password = user.Password;
            objUser.Role = user.Role;
            _entity.tblUsers.Add(objUser);
            _entity.SaveChanges();
               return objUser.ID;
     }

您可以使用承诺来获取响应。这可以放在服务中,并在您想要使用它时调用它。

this.addUser = function (obj) {
        var datosRecu = null;
        var deferred = $q.defer();
        var uri = baseUrl + 'addUser';
        $http({
            url: uri,
            method: 'post',
            data: angular.toJson(obj)
        }).then(function successCallback(response) {
            datosRecu = response;
            deferred.resolve(datosRecu);
        }, function errorCallback(response) {
            datosRecu = response;
            deferred.resolve(datosRecu);
        });
        return deferred.promise;
    };

.error.success 也已弃用。

PD:$http里面的参数data:对应body。如果你想发送参数你应该使用 params:{}

编辑: 在这里,我留给你一个 link promise 是如何工作的。 Angular promises 基本上这有助于异步处理数据

上面的示例可以在这样的服务中使用

myApp.service('myService', function($q, $http){

// here your services....

});

该服务可以注入到任何控制器内部,以在您的函数内部提供您想要的数据

myApp.controller('myController', function($scope, myService){

  $scope.list = function(){
      $promise = myService.getAll(); // this will be the name of your function inside your servive
      $promise.then(function(data){
         console.log(data); //here you can se your promise with data like status and messages from the server.
      });
  };

});

希望对您有所帮助。