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.
});
};
});
希望对您有所帮助。
这是我的 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.
});
};
});
希望对您有所帮助。