http - Why do my AngularJS custom Interceptor not working -


i have been following article http://www.webdeveasy.com/interceptors-in-angularjs-and-useful-examples/ make interceptor add server based token request. have made following code in js file. in below file sessionholder file stores token on login. hard-coding text.

(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"))); 

where "marketplan" ng-app.

now in app.js file, doing following:

    (function (app) {         app.config(function ($stateprovider, $urlrouterprovider, $mdthemingprovider, datepickerpopupconfig, datepickerconfig, $httpprovider) {              // override defaults 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              });      // trying push custom interceptor here, article says needs //to done in app config             $httpprovider.interceptors.push('sessionmanager');         });       }(angular.module("marketplan", ["my dependencies here"]))); 

with code, getting unknown session provider error application starts.

i unable figure out why happening. fyi, understanding interceptor (factory) should registered in app. name of interceptor should pushed $httpprovider interceptor array in config (i.e when application bootstraps).

is correct understanding ?? there that's not done chronological here.

please guide me through.

well, realized have been doing blunder here. following module-based structure project wherein small modules grouped dependencies in main application (app.js file).

earlier, tried register interceptor in 1 such module. however, obvious, should registered in main app (ng-app).

declaring them in main app solved issue me. app.js goes this:

(function (app) {     app.config(function ($stateprovider, $urlrouterprovider, $mdthemingprovider, datepickerpopupconfig, datepickerconfig, $httpprovider) {          //pushing interceptor here         $httpprovider.interceptors.push('sessionmanager');      });      //declaring interceptor here     app.factory('sessionmanager', ['sessionholder', function (sessionholder) {         console.log("reached sessionmanager");         var sessionmanager = {             request: function (config) {                 //if (sessionservice.validation_capability) {                 config.headers['x-session-token'] = 'saurabh';                 config.headers['baap'] = 'saurabh';//sessionservice.authorisationtoken;                 //}                 return config;             }         };         return sessionmanager;       }]);      //declaring service store token here     app.service('sessionholder', function () {         console.log("reached sessionholder");         var self = this;         this.validation_capability = false;         this.saveauthorisationtoken = function (token) {             self.authorisationtoken = token;             self.validation_capability = true;         }     });      //run function of application     app.run(function ($rootscope) {      //runtime changes here       });      app.controller('appcontroller', function () {     //controlled define in app, in case needed     });  }(angular.module("marketplan", ["my dependencies"]))); 

this working fine. hope might someday


Comments

Popular posts from this blog

java - Static nested class instance -

c# - Bluetooth LE CanUpdate Characteristic property -

JavaScript - Replace variable from string in all occurrences -