$ http拦截器导致无限循环

时间:2017-05-17 13:44:45

标签: angularjs http promise infinite-loop

我正在构建使用自定义API的AngularJs应用,后者需要有效的授权令牌,如果不是,我的API会返回4O1 HTTP状态代码。

因此,我使用了一个http拦截器,它意味着在重试前一个请求之前要求一个新的令牌。

$("#datatable th[value='"+data[i][d].orderStatus+"']").after("<td>" + data[i][0].counter + "</td>").trigger("create");

我在拦截器中使用了JQuery.ajax,因为我猜想当令牌续订请求导致错误时,使用$ http会导致无限循环。 但它仍会导致错误的无限循环: 原始请求 - &gt;续订请求......

1 个答案:

答案 0 :(得分:2)

我没有看到错误的完整日志,但我想这个问题可能与$http服务的注入有关(即使您使用$ .ajax,它仍然存在) )在一个http拦截器里面。这将导致循环依赖,因为angular将面临一个无限循环,试图解决$http及其拦截器的依赖。

请参阅我之前的回答here

如果您需要进行ajax调用,请尝试注入服务&#34;按需要&#34;

angular.module('myApp').factory('interceptor', function($injector){

  return {
      'responseError': function(response) {
         var http = $injector.get('$http');
         http.get..
       }
  }

});