溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AngularJS中的攔截器實(shí)例詳解

發(fā)布時間:2020-10-08 23:21:01 來源:腳本之家 閱讀:125 作者:lqh 欄目:web開發(fā)

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
  };
}]);


感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細(xì)節(jié)

免責(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)容。

AI