繁体   English   中英

使用angularJS http服务捕获类似代理错误的错误

[英]Catch error like proxy error with angularJS http service

是否可以在Angular1的$ http服务中捕获诸如502 Proxy Error之类的错误? 通常,服务器会返回一些HTTP状态代码(例如500),并在正文中返回错误消息。

像这样的错误当然是完全相同的,它是502错误,主体是一些HTML代码(默认的Apache),所以我将HTML代码作为错误消息得到,并且我的应用程序会将该代码显示为错误。

有没有办法捕获这些错误并将其重写为用户友好的错误消息?

为此,您可以使用自己的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);
        }
    };
}]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM