簡體   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