国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解AngularJs HTTP響應攔截器實現登陸、權限校驗

2024-05-06 15:18:36
字體:
來源:轉載
供稿:網友

$httpAngularJS 的 $http 服務允許我們通過發送 HTTP 請求方式與后臺進行通信。在某些情況下,我們希望可以俘獲所有的請求,并且在將其發送到服務端之前進行操作。還有一些情況是,我們希望俘獲響應,并且在完成完成調用之前處理它。一個很好例子就是處理全局 http 異常。攔截器(Interceptors)應運而生。本文將介紹 AngularJS 的攔截器,并且給幾個有用的例子。

什么是攔截器?

$httpProvider 中有一個 interceptors 數組,而所謂攔截器只是一個簡單的注冊到了該數組中的常規服務工廠。下面的例子告訴你怎么創建一個攔截器:

<!-- lang: js -->module.factory('myInterceptor', ['$log', function($log) {  $log.debug('$log is here to show you that this is a regular factory with injection');  var myInterceptor = {    ....    ....    ....  };  return myInterceptor;}]);

然后通過它的名字添加到 $httpProvider.interceptors 數組:

<!-- lang: js -->module.config(['$httpProvider', function($httpProvider) {  $httpProvider.interceptors.push('myInterceptor');}]);

攔截器允許你:

    通過實現 request 方法攔截請求: 該方法會在 $http 發送請求道后臺之前執行,因此你可以修改配置或做其他的操作。該方法接收請求配置對象(request configuration object)作為參數,然后必須返回配置對象或者 promise 。如果返回無效的配置對象或者 promise 則會被拒絕,導致 $http 調用失敗。 通過實現 response 方法攔截響應: 該方法會在 $http 接收到從后臺過來的響應之后執行,因此你可以修改響應或做其他操作。該方法接收響應對象(response object)作為參數,然后必須返回響應對象或者 promise。響應對象包括了請求配置(request configuration),頭(headers),狀態(status)和從后臺過來的數據(data)。如果返回無效的響應對象或者 promise 會被拒絕,導致 $http 調用失敗。 通過實現 requestError 方法攔截請求異常: 有時候一個請求發送失敗或者被攔截器拒絕了。請求異常攔截器會俘獲那些被上一個請求攔截器中斷的請求。它可以用來恢復請求或者有時可以用來撤銷請求之前所做的配置,比如說關閉進度條,激活按鈕和輸入框什么之類的。 通過實現 responseError 方法攔截響應異常: 有時候我們后臺調用失敗了。也有可能它被一個請求攔截器拒絕了,或者被上一個響應攔截器中斷了。在這種情況下,響應異常攔截器可以幫助我們恢復后臺調用。

angularJs提供四種攔截器,其中兩種成功攔截器(request、response),兩種失敗攔截器(requestError、responseError)。

angular.module("myApp", [])  .factory('httpInterceptor', [ '$q', '$injector',function($q, $injector) {    var httpInterceptor = {      'responseError' : function(response) {        ......        return $q.reject(response);      },      'response' : function(response) {        ......        return response;      },      'request' : function(config) {        ......        return config;      },      'requestError' : function(config){        ......        return $q.reject(config);      }    }    return httpInterceptor;  }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 东莞市| 大同市| 库车县| 大足县| 巴塘县| 和龙市| 江山市| 西平县| 久治县| 枣阳市| 来宾市| 郧西县| 寿阳县| 苍梧县| 绍兴县| 揭东县| 永寿县| 商都县| 林芝县| 阜康市| 富阳市| 崇左市| 金乡县| 独山县| 班玛县| 遂平县| 保定市| 鸡泽县| 尉犁县| 延寿县| 买车| 治县。| 屯昌县| 灵丘县| 遂川县| 仙桃市| 县级市| 淮阳县| 赤壁市| 新田县| 海淀区|