是否可以在Angular1的$ http服务中捕获诸如502 Proxy Error之类的错误? 通常,服务器会返回一些HTTP状态代码(例如500),并在正文中返回错误消息。
类似这样的错误当然是完全相同的,这是一个502错误,并且主体是一些HTML代码(默认的Apache),所以我将HTML代码作为错误消息,而我的应用程序会将该代码显示为错误。
是否可以捕获这些错误并将其重写为用户友好的错误消息?
答案 0 :(得分:1)
为此,您可以像这样使用自己的httpInterceptor:
app.config(['$httpProvider', function($httpProvider){
$httpProvider.interceptors.push('myhttpInterceptor');
}]);
app.factory('myhttpInterceptor', ['$q', '$injector', function($q, $injector){
return {
// optional method
'request': function(config) {
// do something on success
return config;
},
// optional method
'requestError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
},
// optional method
'response': function(response) {
// do something on success
return response;
},
// optional method
'responseError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
}
};
}]);