5
我一直在尋找一種管理我的角度應用程序中可能存在的http錯誤的方法。我一直在分別捕獲它們,但我想在全球進行管理。我爲我的http調用使用$ resource和$ http。有沒有辦法在全球範圍內管理它們?
我一直在尋找一種管理我的角度應用程序中可能存在的http錯誤的方法。我一直在分別捕獲它們,但我想在全球進行管理。我爲我的http調用使用$ resource和$ http。有沒有辦法在全球範圍內管理它們?
從文檔報價:
angular.module('app',[]).config(function($httpProvider){
$httpProvider.interceptors.push(function($q, dependency1, dependency2) {
return {
'request': function(config) {
return config;
},
'response': function(response) {
// do something on success
return response || $q.when(response);
},
'responseError': function(rejection) {
// do something on error
return $q.reject(rejection);
}
};
});
});
您可以捕獲全局錯誤:
angular.module('app').factory('Interceptor',function($q) {
'use strict';
function success(response) {
return response;
}
function error(response) {
if (response.status === 401) {
var deferred = $q.defer();
// here you can broadcast or do anything you want
return deferred.promise;
}
// otherwise
return $q.reject(response);
}
return function (promise) {
return promise.then(success, error);
};
});
angular.module('app').config(function($urlRouterProvider, $locationProvider, $stateProvider, $httpProvider) {
$httpProvider.responseInterceptors.push('Interceptor');
});
響應攔截器已經過時了。 http://docs.angularjs.org/api/ng.$http –