Maison  >  Questions et réponses  >  le corps du texte

angular.js - angularjs中的拦截器会拦截哪些请求?

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

滿天的星座滿天的星座2734 Il y a quelques jours713

répondre à tous(4)je répondrai

  • 为情所困

    为情所困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
        }
      };
    });

    répondre
    0
  • 高洛峰

    高洛峰2017-05-15 17:15:17

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

    répondre
    0
  • 怪我咯

    怪我咯2017-05-15 17:15:17

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

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:15:17

    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 !

    répondre
    0
  • Annulerrépondre