AngularJS中的攔截器實例詳解
異步操作
有時候需要在攔截器中做一些異步操作。幸運的是, AngularJS 允許我們返回一個 promise 延后處理。它將會在請求攔截器中延遲發送請求或者在響應攔截器中推遲響應。
下面是項目中用到的代碼。
ZbtjxcApp.factory('myHttpInterceptor', ['$q', '$window','$location', function($q, $window,$location) { return { // 全局響應 'response': function(response) { // 這里還可以利用promise做異步處理,目前不用做,好像也能滿足需求 switch (response.status) { case (200): if (response.data) { //這里可以做自己相應的處理 if (response.data.code == 100100) { $window.location.href = "/login.html"; } /*else if(response.data.code = 100200) { $location.path('/unauthorized'); }*/ } break; case (500): //后期在處理 console.log("服務器正忙 -- 500"); break; case (404): console.log("not found -- 404"); break; default: console.log("服務器正忙"); } return response; } };}]).config(['$httpProvider', function($httpProvider) { $httpProvider.interceptors.push('myHttpInterceptor');}]);ZbtjxcApp.factory('pageService', ['$http', function($http) { var getPageList = function(geturl, getdata) { return $http.get(geturl, { params: getdata }); } return { getPageList: getPageList };}]);
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答