Где я должен вставить или ввести перехватчик
Это то, что я написал в своем сервисе. Может кто-нибудь сказать мне, где и как я должен вставить http-перехватчик, чтобы я мог проверить каждый ответ и посмотреть, содержит ли код состояния "25001" и если да, то перенаправить его на страницу входа, пожалуйста, помогите.
'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']);
1 ответ
Перехватчики должны быть определены в отдельных модулях. Обычно это делается в 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');
}]);
Таким образом, ваш перехватчик будет срабатывать после каждого ответа. Вы можете более подробно взглянуть на то, как перехватчики работают в Angular, в документах или здесь, для некоторых примеров.