您好,登錄后才能下訂單哦!
AngularJS中的攔截器實(shí)例詳解
異步操作
有時候需要在攔截器中做一些異步操作。幸運(yùn)的是, AngularJS 允許我們返回一個 promise 延后處理。它將會在請求攔截器中延遲發(fā)送請求或者在響應(yīng)攔截器中推遲響應(yīng)。
下面是項(xiàng)目中用到的代碼。
ZbtjxcApp.factory('myHttpInterceptor', ['$q', '$window','$location', function($q, $window,$location) { return { // 全局響應(yīng) 'response': function(response) { // 這里還可以利用promise做異步處理,目前不用做,好像也能滿足需求 switch (response.status) { case (200): if (response.data) { //這里可以做自己相應(yīng)的處理 if (response.data.code == 100100) { $window.location.href = "/login.html"; } /*else if(response.data.code = 100200) { $location.path('/unauthorized'); }*/ } break; case (500): //后期在處理 console.log("服務(wù)器正忙 -- 500"); break; case (404): console.log("not found -- 404"); break; default: console.log("服務(wù)器正忙"); } 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 }; }]);
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。