L'intercepteur ne fonctionne pas

J'essaie de faire un intercepteur dans AngularJS. Je suis tout à fait nouveau chez AngularJS et j'ai trouvé des exemples d'Interceptor, mais je ne peux pas le faire fonctionner.

Ici, j'ai mon fichier app.js, qui contient tous les codes pertinents. J'ai également un contrôleur qui appelle un REST api et récupère JSONP.

D'abord, je déclare le module puis configurez-le (définissez l'intercepteur). Il devrait maintenant attraper toutes les requêtes et les résultats pour la console …

Est-ce faux de créer l'Interceptor avec app.factory?

var app = angular.module( 'TVPremieresApp', [ 'app.services' , 'app.controllers' ] ); app.config(function ($httpProvider) { $httpProvider.responseInterceptors.push('errorInterceptor'); }); app.service('MessageService', function () { // angular strap alert directive supports multiple alerts. // Usually this is a distraction to user. //Let us limit the messages to one this.messages = []; this.setError = function(msg) { this.setMessage(msg, 'error', 'Error:'); }; this.setSuccess = function(msg) { this.setMessage(msg, 'success', 'Success:'); }; this.setInfo = function (msg) { this.setMessage(msg, 'info', 'Info:'); }; this.setMessage = function(content, type, title) { var message = { type: type, title: title, content: content }; this.messages[0] = message; }; this.clear = function() { this.messages = []; }; }); app.factory('errorInterceptor', function ($q, $location, MessageService, $rootScope) { return function (promise) { // clear previously set message MessageService.clear(); return promise.then(function (response) { console.log(response); return response; }, function (response) { if (response.status == 404) { MessageService.setError('Page not found'); } else if(response.status >= 500){ var msg = "Unknown Error."; if (response.data.message != undefined) { msg = response.data.message + " "; } MessageService.setError(msg); } // and more return $q.reject(response); }); }; }); 

$httpProvider.responseInterceptors sont obsolètes. Vous pouvez modifier votre code

 app.factory('errorInterceptor', ['$q', '$rootScope', 'MessageService', '$location', function ($q, $rootScope, MessageService, $location) { return { request: function (config) { return config || $q.when(config); }, requestError: function(request){ return $q.reject(request); }, response: function (response) { return response || $q.when(response); }, responseError: function (response) { if (response && response.status === 404) { } if (response && response.status >= 500) { } return $q.reject(response); } }; }]); app.config(['$httpProvider', function ($httpProvider) { $httpProvider.interceptors.push('errorInterceptor'); }]); 

Voir Docs pour plus d'informations