Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS HTTP拦截器_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS HTTP拦截器

Javascript AngularJS HTTP拦截器,javascript,angularjs,Javascript,Angularjs,当任何请求完成时,如何在console.log(“完成的AJAX请求”)中使用拦截器 我一直在研究拦截器,到目前为止有以下内容,但它是在请求开始时触发的,而不是在请求结束时触发的 app.factory('myInterceptor', [function() { console.log("finished AJAX request") var myInterceptor = { }; return myInterceptor; }]); 配置: app

任何请求完成时,如何在console.log(“完成的AJAX请求”)中使用拦截器

我一直在研究拦截器,到目前为止有以下内容,但它是在请求开始时触发的,而不是在请求结束时触发的

app.factory('myInterceptor', [function() {
    console.log("finished AJAX request") 

    var myInterceptor = {

    };

    return myInterceptor;
}]);
配置:

app.config(function ($stateProvider, $urlRouterProvider, $httpProvider) {

$httpProvider.interceptors.push('myInterceptor'); 

etc

您需要将控制台置于httpInterceptor的响应函数中

// 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
        console.log('I am done');
        return response;
      },

      // optional method
     'responseError': function(rejection) {
        // do something on error
        if (canRecover(rejection)) {
          return responseOrNewPromise
        }
        return $q.reject(rejection);
      }
    };
  });

  $httpProvider.interceptors.push('myHttpInterceptor');

在这里的响应方法中,我已经包含了控制台日志函数调用

您需要将控制台放入httpInterceptor的响应函数中

// 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
        console.log('I am done');
        return response;
      },

      // optional method
     'responseError': function(rejection) {
        // do something on error
        if (canRecover(rejection)) {
          return responseOrNewPromise
        }
        return $q.reject(rejection);
      }
    };
  });

  $httpProvider.interceptors.push('myHttpInterceptor');
在这里的响应方法中,我包含了控制台日志函数调用