angular.js - angularjs中的攔截器會攔截哪些請求?
問題描述
在angularjs中添加攔截器,發現$http發出的請求會攔截,但$window.location.href確不會攔截,想請問一下攔截器是不是只攔截$http發出的請求?
問題解答
回答1:官方文檔解釋的比較清楚,也有示例https://docs.angularjs.org/ap...$http
// 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 return response; }, // optional method ’responseError’: function(rejection) { // do something on error if (canRecover(rejection)) {return responseOrNewPromise } return $q.reject(rejection); } };});$httpProvider.interceptors.push(’myHttpInterceptor’);// alternatively, register the interceptor via an anonymous factory$httpProvider.interceptors.push(function($q, dependency1, dependency2) { return { ’request’: function(config) { // same as above }, ’response’: function(response) { // same as above } };});回答2:
跳轉到新的頁面不執行攔截器中的代碼
回答3:我記得是html 與 接口請求,之前console.log過
回答4:所謂 $window 其實是對瀏覽器 window 對象的引用的二次包裝,那為什么會有這個東東呢?目的主要是為了代碼可測試性。
所以,結論是這玩意跟 $http 一點關系都沒有,自然也不會走攔截器
當然,我還是挺懂題主,無非就是希望在做跳轉時做一些額外的事情。這個問題,只能從路由方面去解決了。
以上!
相關文章:
1. 前端 - CSS3問題:請問-webkit-background-clip屬性,需要寫在background屬性后面嗎?2. angular.js - angular里的ui-view里,獲取當前頁面的狀態參數用$state.params,在vue里類似的語法是什么呢?3. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量4. 微信開放平臺 - ios APP能不能打開微信然后通過微信跳轉到指定的URL?5. 淺談vue生命周期共有幾個階段?分別是什么?6. node.js - nodejs+express+vue7. Mysql啟動發生系統錯誤10678. nginx - vue-cli生成的項目打包發到服務器后怎么代理api?9. html5 - h5+中webview的show方法有延遲10. 大家好,我想請問一下怎么做搜索欄能夠搜索到自己網站的內容。
