这是我在我的服务中写的内容,任何人都可以告诉我在哪里以及如何插入http拦截器,以便我可以查看每个响应并查看状态代码是否包含' 25001&# 39;如果是,则将其重定向到登录页面,请帮忙。
'use strict';
homeApp.factory('AdminDashboardService', ['$http', '$q', function($http, $q){
return {
'response': function(response) {
console.log("Yes Command comes here");
return response;
},
getAllHolidays: function(monthYearArrayForHolidayList) {
console.log("For full list of holidays list length: "+monthYearArrayForHolidayList.length);
var isMonthly="no";
return $http.get('/tasktrac/holiday/getHoliday/isMonthly/'+isMonthly+'/'+monthYearArrayForHolidayList)
.then(
function(response){
return response.data;
},
function(errResponse){
//console.error('Error while fetching holiday');
return $q.reject(errResponse);
}
);
}}]);
homeApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('AdminDashboardService');
}]);
掌握app.js
'use strict';
var App = angular.module('myApp',[],['ngAnimate', 'ui.bootstrap','UserValidation']);
var homeApp = angular.module("homeApp",['ngAnimate', 'ui.bootstrap']);
var cApp = angular.module('clientApp',['ngAnimate', 'ui.bootstrap']);
答案 0 :(得分:0)
拦截器应该在单独的模块中定义。通常这是在factory
中完成的,就像您已经完成的那样。每次在请求之前或响应之后(关于您的配置)都会执行拦截器。在您的情况下,它应该在您的回复后执行。
homeApp.factory('AdminDashboardService', ['$http', '$q', function($http, $q) {
return {
'response': function(response) {
// do something on success
return response;
},
}
}]);
要在每个回复中触发拦截器,您现在必须将其添加到$httpProvider
。
module.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('AdminDashboardService');
}]);