[英]AngularJS $http and how to get error response
我看到以下示例用于调用服务器端资源:
UserSession.prototype.$save = function() {
return $http.post('/users/sign_in', {
"user" : {
"email" : this.email,
"password" : this.password,
"remember_me" : this.remember_me ? 1 : 0
}
});
};
我的问题是,如果调用失败,是否可以在此代码中看到实际的错误响应? 上面如何写呢?
您错过了回调
UserSession.prototype.$save = function() {
return $http.post('/users/sign_in', {
"user" : {
"email" : this.email,
"password" : this.password,
"remember_me" : this.remember_me ? 1 : 0
}
})
.success(function (data, status, headers, config) {
// success logic here
})
.error(function (data, status, headers, config) {
// error logic here
});
};
您需要使用.error()
回调参考
UserSession.prototype.$save = function() {
return $http.post('/users/sign_in', {
"user" : {
"email" : this.email,
"password" : this.password,
"remember_me" : this.remember_me ? 1 : 0
}
}).error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
};
您可以像其他答案所建议的那样在该函数中定义.success
和.error
回调,但是我觉得您更有可能希望调用.$save
的应用程序代码确定成功或失败时要完成的工作。
因此,您将按原样保留.$save
函数,并且在应用程序中的任何地方调用myUserSession.$save()
,您都可以执行以下操作:
myUserSession.$save()
.success(function(data, httpStatus, header, config) {
...
})
.error(function(data, httpStatus, header, config) {
...
});
这样做只会使代码更具可重用性。 当然,如果您知道关于保存的事实,那么您到处都希望有完全相同的行为,那么就按照其他答案所建议的去做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.