L'intercepteur ne fonctionne pas
Im essayant de faire un Intercepteur dans AngularJS. Je suis assez nouveau à AngularJS et trouvé quelques exemples de l'Intercepteur, mais ne peut pas le faire fonctionner.
Ici, j'ai mon app.js fichier, qui ont tous les code. J'ai aussi un contrôleur qui appelle une api REST et obtenir JSONP retourné.
J'ai d'abord déclarer le module, puis config (définir l'Intercepteur). Il doit maintenant rattraper toutes les demandes et de sortie de la console...
Est-il de mal à créer de l'Intercepteur avec app.usine?
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);
});
};
});
La version de angularjs vous utilisez?
responseInterceptors sont obsolètes. Vérifier stackoverflow.com/a/20632690/1014586 pour voir comment vous pouvez adapter votre code
responseInterceptors sont obsolètes. Vérifier stackoverflow.com/a/20632690/1014586 pour voir comment vous pouvez adapter votre code
OriginalL'auteur olefrank | 2014-01-21
Vous devez vous connecter pour publier un commentaire.
$httpProvider.responseInterceptors
sont obsolètes. Vous pouvez modifier votre codeVoir Docs pour plus d'info
Merci pour le
responseError
intercepteur de champ par exemple. Mon code a été frappant de ce bloc, lorsqu'il a reçu un 401 (non autorisé) quand j'ai essayé de mettre en œuvre un jwt jeton d'expiration! Je m'attendais à ce qu'il touche leresponse
bloc plutôt sur un 401. * lien de mon code si vous êtes intéressé *.OriginalL'auteur Satpal