angular.js - angularjs中的拦截器会拦截哪些请求?
滿天的星座
滿天的星座 2017-05-15 17:13:17
0
4
740

在angularjs中添加拦截器,发现$http发出的请求会拦截,但$window.location.href确不会拦截,想请问一下拦截器是不是只拦截$http发出的请求?

滿天的星座
滿天的星座

répondre à tous(4)
为情所困

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
    }
  };
});
小葫芦

Sauter vers une nouvelle page sans exécuter le code dans l'intercepteur

刘奇

Je me souviens que c'était une demande HTML et d'interface, je l'ai console.logd avant

曾经蜡笔没有小新

Le soi-disant $window 其实是对浏览器 windowemballage 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 !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal