Maison > Questions et réponses > le corps du texte
在angularjs中添加拦截器,发现$http发出的请求会拦截,但$window.location.href确不会拦截,想请问一下拦截器是不是只拦截$http发出的请求?
为情所困2017-05-15 17:15:17
Le document officiel explique clairement et contient des exemples
https://docs.angularjs.org/ap...$http
// register the interceptor as a service
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
// optional method
'request': function(config) {
// do something on success
return config;
},
// optional method
'requestError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
},
// optional method
'response': function(response) {
// do something on success
return response;
},
// optional method
'responseError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
}
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
// alternatively, register the interceptor via an anonymous factory
$httpProvider.interceptors.push(function($q, dependency1, dependency2) {
return {
'request': function(config) {
// same as above
},
'response': function(response) {
// same as above
}
};
});
高洛峰2017-05-15 17:15:17
Sauter vers une nouvelle page sans exécuter le code dans l'intercepteur
怪我咯2017-05-15 17:15:17
Je me souviens que c'était une demande HTML et d'interface, je l'ai console.logd avant
曾经蜡笔没有小新2017-05-15 17:15:17
Le soi-disant $window
其实是对浏览器 window
emballage secondaire des références d'objets, alors pourquoi y a-t-il cette chose ? Le but est principalement la testabilité du code.
Donc, la conclusion est que cette chose n'a rien à voir avec $http, et naturellement elle n'utilisera pas d'intercepteurs
Bien sûr, je comprends toujours le titre de la question, mais j'espère juste faire quelques choses supplémentaires lors des sauts. Ce problème ne peut être résolu que du point de vue du routage.
Ci-dessus !