Javascript 使用资源/拦截器处理4XX http代码

Javascript 使用资源/拦截器处理4XX http代码,javascript,angularjs,angular-http-interceptors,Javascript,Angularjs,Angular Http Interceptors,我需要一个处理HTTP4XX状态代码的解决方案。我以前有一个这样的错误截取器 angular .module('App') .factory('errorInterceptor', function (....) { return { responseError: function (response) { if (response.status === '404') {

我需要一个处理HTTP
4XX
状态代码的解决方案。我以前有一个这样的错误截取器

angular
    .module('App')
    .factory('errorInterceptor', function (....) {

         return {
             responseError: function (response) {
                 if (response.status === '404') {
                     $rootScope.error = response; 
                 } else if (....) {...}

                 return $q.reject(response);
             }
         };
    };
});
<body message="error"> ....
在HTML中,错误如下所示

angular
    .module('App')
    .factory('errorInterceptor', function (....) {

         return {
             responseError: function (response) {
                 if (response.status === '404') {
                     $rootScope.error = response; 
                 } else if (....) {...}

                 return $q.reject(response);
             }
         };
    };
});
<body message="error"> ....

解决此问题的最佳策略/解决方案是什么?

您是否可以将函数注入
errorInterceptor
,然后根据您从何处调用它,您可以传入执行不同操作的不同函数?如果需要显示错误消息,请不要传递函数,然后检查未定义并显示错误消息。您是指工厂吗?当然,我可以在资源中定义一些规则,这些规则是在使用资源时在工厂中设置的。然后我将这个工厂注入errorInterceptor,它使用这些规则来确定要做什么。这就是你的意思(或多或少)?我的意思是将一个文本函数传递给
errorInterceptor
,比如:
.factory('errorInterceptor',function(errorMessageFunc,…){
。然后,如果出现错误,你可以说
errorMessageFunc()
如果你发现有404或其他东西,它会做任何你需要它做的事情。我只是在这里吐痰,这可能不是最好的和最“有棱角的”解决问题的方法。您是否可以在
errorInterceptor
中插入一个函数,然后根据您从何处调用它,您可以传入执行不同操作的不同函数?如果它需要显示错误消息,请不要传递函数,然后检查是否未定义并显示错误消息。您是指工厂吗?我可以当然,在资源中定义一些规则,这些规则是在使用资源时在工厂中设置的。然后我将此工厂注入errorInterceptor,它使用这些规则来确定要执行的操作。这就是您的意思(或多或少)?我的意思是将一个文本函数传递给
errorInterceptor
,例如:
。工厂('errorInterceptor',function(errorMessageFunc,…){
。然后,如果有错误,你可以说
errorMessageFunc()
,如果你发现有404或其他东西,它会做任何你需要它做的事情。我只是在这里吐痰,这可能不是解决问题的最好和最“角度”的方法。