Mondial Ajax gestionnaire d'erreur avec AngularJS
Lorsque mon site est 100% jQuery, j'ai utilisé pour ce faire:
$.ajaxSetup({
global: true,
error: function(xhr, status, err) {
if (xhr.status == 401) {
window.location = "./index.html";
}
}
});
à définir une gestionnaire d'erreurs 401. Maintenant, je utiliser angularjs avec $resource
et $http
de faire de mon (RESTE) de requêtes sur le serveur. Est-il possible également de définir un gestionnaire d'erreurs globales angulaire?
- Est-il possible de dupliquer des AngularJS Échec de la Ressource GET?
- Non, nous voulons faire une erreur globale 401 gestionnaire pour l'application
- lol, avez-vous songé que ce que vous voulez, mais avec un autre état http (que vous pouvez modifier)? De toute façon, pkozlowski.opensource réponse vous montre comment le faire
- Non, il est beaucoup plus comme la réponse de Justen...ce n'est pas un doublon avec la question que vous parlez
Vous devez vous connecter pour publier un commentaire.
Je suis aussi en train de construire un site web avec angulaires et je suis tombé sur cette même obstacle pour le mondial 401 manipulation. J'ai fini par utiliser http intercepteur quand je suis tombé sur ce blog. Peut-être que vous le trouverez aussi utile que j'ai fait.
"L'authentification dans AngularJS (ou similaire) en fonction de l'application.", espeo logiciel
EDIT: solution finale
$routeProvider.when(
fonction. Généralement, c'est dans un.config(
. Cela peut / cela devrait-il exister en dehors de la.config(
?$location.path('#/')
pas le mondialwindow.location
objetreturn response || $q.when(response);
de sorte que si la réponse est vide, c'est aussi une promesse objet est retourné.Veuillez noter que responseInterceptors ont été dépréciées Angulaire 1.1.4.
Vous trouverez ci-dessous un extrait basée sur la officiel docs, montrant la nouvelle façon de mettre en œuvre des intercepteurs.
C'est à quoi il ressemble dans mon projet à l'aide de Coffeescript:
responseError
,rejection
a tout ce dont vous avez besoin.$httpProvider...
obtenir enveloppé dans unconfig()
bloc?response
en vertu de laresponseError
fonction fait référence àrejection
(ou peut-être le paramètre doit avoir son nom a été changé pourresponse
?Créer le fichier
<script type="text/javascript" src="../js/config/httpInterceptor.js" ></script>
avec ce contenu: