javascript - AngularJS HTTP 拦截器

标签 javascript angularjs

AngularJS 中使用拦截器当任何请求完成时,如何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');

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

关于javascript - AngularJS HTTP 拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282033/

相关文章:

javascript - 如何在angularjs中使用带有嵌套ng-repeat的复选框

javascript - jQuery Mobile 1.4.2 - 带图标的单选按钮

javascript - 在 Twig 中使用 JS 变量

javascript - 如何从 angularjs 的 $q.defer() promise 对象中删除回调

javascript - Angular 中的数组映射

javascript - 如何基于具有相同选项值的另一个选择元素禁用选择元素中的选项?

javascript - Angular Directive(指令)关注/取消关注按钮

javascript - d3 : color by separate array

javascript - 在 javascript 中将字符串 "009"解析为整数?

javascript - 可拖动元素在悬停在另一个可拖动元素之上时消失