Ich habe diesen Artikel http://www.webdeveasy.com/interceptors-in-angularjs-and-useful-examples/ verfolgt, um einen Interceptor zu erstellen, der ein serverbasiertes Token zu meiner gesamten Anfrage hinzufügen könnte. Ich habe den folgenden Code in einer js-Datei gemacht. In der folgenden Datei ist SessionHolder eine Datei, die Token bei der Anmeldung speichert. aber derzeit bin ich hart codieren den Text.Warum funktioniert mein AngularJS benutzerdefinierter Interceptor nicht?
(function (module) {
module.factory('sessionManager', ['sessionHolder', function (sessionHolder) {
console.log("Reached sessionManager");
var sessionManager = {
request: function (config) {
//if (sessionHolder.validation_capability) {
config.headers['x-session-token'] = 'saurabh';
config.headers['baap'] = 'saurabh';//sessionHolder.AuthorisationToken;
//}
return config;
}
};
return sessionManager;
}]);
}(angular.module("MarketPlan")));
wo "MarketPlan" ist meine ng-app.
nun in der app.js Datei, ich tue das folgende:
(function (app) {
app.config(function ($stateProvider, $urlRouterProvider, $mdThemingProvider, datepickerPopupConfig, datepickerConfig, $httpProvider) {
// override defaults for date picker
datepickerPopupConfig.showButtonBar = false;
datepickerConfig.showWeeks = false;
//guiding initial routes
$urlRouterProvider.otherwise(document.cookie.indexOf('main=1') !== -1 ? '/home' : '/business');
//setting theme configs
$mdThemingProvider.definePalette('grey', {
'50': 'eeeeee',
'100': 'ffffff',
'200': 'ffffff',
'300': 'ffffff',
'400': 'ffffff',
'500': 'ffffff',
'600': 'ffffff',
'700': 'ffffff',
'800': 'ffffff',
'900': 'ffffff',
'A100': 'ffffff',
'A200': 'ffffff',
'A400': 'ffffff',
'A700': 'ffffff',
'contrastDefaultColor': 'dark',
'contrastDarkColors': ['50', '100', '200'],
'contrastLightColors': undefined
});
// I am trying to push the custom interceptor here, as the article says it needs //to be done in the app config
$httpProvider.interceptors.push('sessionManager');
});
}(angular.module("MarketPlan", ["my dependencies here"])));
Mit diesem Code, ich bin der Unbekannte Session Provider Fehler, sobald Anwendung gestartet zu bekommen.
Ich kann nicht herausfinden, warum das passiert. Bitte beachten Sie, dass ein Interceptor (Fabrik) in Ihrer App registriert sein sollte. Der Name dieses Interceptors sollte in das $ httpProvider-Interceptor-Array in der Konfiguration (d. H. Bei Anwendungs-Bootstraps) geschoben werden.
Ist das ein richtiges Verständnis ?? Gibt es etwas, das hier nicht chronologisch gemacht wird?
Bitte führen Sie mich durch.
Können Sie Link zu Codepen oder JSbin mit Ihrem Code veröffentlichen? – Rishab777
Es schlägt wahrscheinlich auf 'sessionHolder' fehl, wenn es nicht existiert – maurycy