84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
在angularjs中加入攔截器,發現$http發出的請求會攔截,但$window.location.href確不會攔截,想請問一下攔截器是不是只攔截$http發出的請求?
官方文件解釋的比較清楚,也有例子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 } }; });
跳到新的頁面不執行攔截器中的程式碼
我記得是html 與 介面請求,之前console.log過
所謂 $window 其实是对浏览器 window 物件的引用的二次包裝,那為什麼會有這個東東呢?目的主要是為了程式碼可測試性。
$window
window
所以,結論是這玩意跟 $http 一點關係都沒有,自然也不會走攔截器
當然,我還是挺懂題主,無非就是希望在做跳轉時做一些額外的事情。這個問題,只能從路由方面去解決了。
以上!
官方文件解釋的比較清楚,也有例子
https://docs.angularjs.org/ap...$http
跳到新的頁面不執行攔截器中的程式碼
我記得是html 與 介面請求,之前console.log過
所謂
$window
其实是对浏览器window
物件的引用的二次包裝,那為什麼會有這個東東呢?目的主要是為了程式碼可測試性。所以,結論是這玩意跟 $http 一點關係都沒有,自然也不會走攔截器
當然,我還是挺懂題主,無非就是希望在做跳轉時做一些額外的事情。這個問題,只能從路由方面去解決了。
以上!