2016-04-15 34 views
1

我有一個AngularJS HTTP攔截:爲什麼我的AngularJS HTTP攔截器的請求函數被調用了很多次?

$httpProvider.interceptors.push([ 
    "$rootScope", "$q", "$location", 
    function ($rootScope, $q, $location) { 

     return { 
      'request': function (config) { 
       var loc = $location.path(); 
       console.log("path: " + loc); 
       .... 
       .... 
       return config; 
      }, 
      ... 
      }; 
     } 
    ]); 

我作出這樣的返回的25個項目的數組的呼叫。這些項目使用ng-repeat填充到html中。該顯示會導致對請求功能的75個調用。

任何人都可以解釋爲什麼它會對一個HTTP請求進行如此多的調用嗎?

感謝您的任何幫助。

回答

2

http攔截器被請求爲請求角度,不只是數據請求。所以模板請求也可以解釋爲什麼它如此之高。


更新:過濾掉模板我總是使用下面的函數。

function isLocalUrl(url) { 
    return !(url.indexOf('http://') === 0 || url.indexOf('https://') === 0); 
} 

,並調用它像這樣:

return { 
    'request': function (config) { 
     if(isLocalUrl(config.url)) 
      return config; 
    } 
} 
+0

這可以解釋它;是否有任何建立的模式來解決這個問題,並將檢查限制在數據請求中? – Sako73

+0

@ Sako73檢查我更新的答案 –

相關問題