在我的Web应用程序中,我对远程HTTP WebAPI服务执行GET
命令
$http.get(url).then(function(data) { do_something(); });
当WebAPI返回一些数据时,一切正常,但是当WebAPI返回404错误(没有数据显示)时,该函数似乎没有触发。
如何为它设置回调?
答案 0 :(得分:4)
$http.get(url).then(function(data) {
do_something();
}, function(err) {
// your error function
if (err.status == 404) {
do_something_else();
}
});
答案 1 :(得分:2)
我认为对于404回复,最好的方法是显示正确的未找到的页面。在angularjs中,您可以使用$ injector服务拦截响应。因此,您可以创建一个查找404响应并显示404页面的服务。
angular.module('mymodule')
.service('APIInterceptor', function( $injector) {
return {
'request': function(config){
// request logic goes here.
},
'responseError' : function(response){
if (response.status === 404) {
$injector.get('$state').go('error_500');
}
return response;
}
};
});
答案 2 :(得分:1)
$http
返回状态代码作为第二个参数。
$http.get(url)
.success(function(data, status) {
alert(status);
})
.error(function(data, status) {
alert('Error with status code: ' + status);
});
status
- {number}
- 响应的HTTP状态代码。
但是,如果状态是错误状态,例如404,则将调用错误块