有没有办法为拦截器请求$ http?

Evg*_*eni 5 angularjs

这个想法是在某些情况下从另一个来源获取数据,所以我有这个存根:

factory("interceptor", function ($q, $location, $http) {
    return function (promise) {
        return promise;
    }
}
Run Code Online (Sandbox Code Playgroud)

失败了

[$ injector:cdep]发现循环依赖:拦截器< - $ http

还试图注入$ injector并使用它来检索$ http,结果相同.有任何想法吗?

.config只是声明:

.config(function ($httpProvider) {
    $httpProvider.responseInterceptors.push('interceptor');
});
Run Code Online (Sandbox Code Playgroud)

Ila*_*mer 9

注入$injectorinterceptor:

使用它来获取$http回调函数中返回的对象.

这是一个例子

app.config(function ($httpProvider) {
  $httpProvider.interceptors.push('interceptor');
});

app.factory("interceptor", function ($q, $location, $injector) {
  return {
    request: function(config){      
      var $http = $injector.get('$http');
      console.dir($http);
      return config;
    }
  }
});

app.run(function($http){
  $http.get('/')
});
Run Code Online (Sandbox Code Playgroud)