最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

快速學(xué)習(xí)AngularJs HTTP響應(yīng)攔截器

 更新時(shí)間:2015年12月31日 15:43:12   作者:賴祥燃  
任何時(shí)候,如果我們想要為請求添加全局功能,例如身份認(rèn)證、錯(cuò)誤處理等,在請求發(fā)送給服務(wù)器之前或服務(wù)器返回時(shí)對其進(jìn)行攔截,是比較好的實(shí)現(xiàn)手段

任何時(shí)候,如果我們想要為請求添加全局功能,例如身份認(rèn)證、錯(cuò)誤處理等,在請求發(fā)送給服務(wù)器之前或服務(wù)器返回時(shí)對其進(jìn)行攔截,是比較好的實(shí)現(xiàn)手段。

angularJs通過攔截器提供了一個(gè)從全局層面進(jìn)行處理的途徑。

四種攔截器

實(shí)現(xiàn) request 方法攔截請求

request: function(config) {
// do something on request success
return config || $q.when(config);
} 

該方法會(huì)在 $http 發(fā)送請求后臺(tái)之前執(zhí)行,因此你可以修改配置或做其他的操作。該方法接收請求配置對象(request configuration object)作為參數(shù),然后必須返回配置對象或者 promise 。如果返回?zé)o效的配置對象或者 promise 則會(huì)被拒絕,導(dǎo)致 $http 調(diào)用失敗。

實(shí)現(xiàn) requestError 方法攔截請求異常

requestError: function(rejection) {
  // do something on request error  return $q.reject(rejection);
} 

有時(shí)候一個(gè)請求發(fā)送失敗或者被攔截器拒絕了,請求異常攔截器會(huì)俘獲那些被上一個(gè)請求攔截器中斷的請求。它可以用來恢復(fù)請求或者有時(shí)可以用來撤銷請求之前所做的配置,比如說關(guān)閉進(jìn)度條,激活按鈕和輸入框什么之類的。

實(shí)現(xiàn) response 方法攔截響應(yīng)

response: function(response) {
  // do something on response success
return response || $q.when(response);} 

該方法會(huì)在 $http 接收到從后臺(tái)過來的響應(yīng)之后執(zhí)行,因此你可以修改響應(yīng)或做其他操作。該方法接收響應(yīng)對象(response object)作為參數(shù),然后必須返回響應(yīng)對象或者 promise。響應(yīng)對象包括了請求配置(request configuration),頭(headers),狀態(tài)(status)和從后臺(tái)過來的數(shù)據(jù)(data)。如果返回?zé)o效的響應(yīng)對象或者 promise 會(huì)被拒絕,導(dǎo)致$http 調(diào)用失敗。

實(shí)現(xiàn) responseError 方法攔截響應(yīng)異常

responseError: function(rejection) {
// do something on response error  return $q.reject(rejection);
} 

有時(shí)候我們后臺(tái)調(diào)用失敗了,也有可能它被一個(gè)請求攔截器拒絕了或者被上一個(gè)響應(yīng)攔截器中斷了。在這種情況下,響應(yīng)異常攔截器可以幫助我們恢復(fù)后臺(tái)調(diào)用。

攔截器核心

攔截服務(wù)工廠

var app = angular.module("ajaxHttp", []);
app.factory("httpInterceptor", [ "$q", "$rootScope", function($q, $rootScope) {
return {
request: function(config) {
// do something on request success
return config || $q.when(config);
},
   requestError: function(rejection) {
     // do something on request error
     return $q.reject(rejection)
   },
response: function(response) {
// do something on response success
return response || $q.when(response);
},
responseError : function(rejection) {
// do something on response error
return $q.reject(rejection);
}
};
}]); 

注冊攔截工廠方法

app.config(["$httpProvider", function($httpProvider) {
  $httpProvider.interceptors.push("httpInterceptor");
}]); 

示例

對401,404的攔截處理

app.config(["$httpProvider", function($httpProvider) { 
$httpProvider.interceptors.push('httpInterceptor'); 
}]); 
app.factory("httpInterceptor", ["$q", "$injector", function($q, $injector) {
return {
"responseError": function(response) {
if (response.status == 401) {
var rootScope = $injector.get('$rootScope');
var state = $injector.get('$rootScope').$state.current.name;
rootScope.stateBeforLogin = state;
rootScope.$state.go("login");
return $q.reject(response);
}
else if (response.status === 404) {
console.log("404!");
return $q.reject(response);
}
}
};
]);

以上內(nèi)容給大家分享快速學(xué)習(xí)AngularJs HTTP響應(yīng)攔截器 的相關(guān)知識(shí),希望大家喜歡,同時(shí)感謝大家一直以來對腳本之家網(wǎng)站的支持。

相關(guān)文章

  • Angular4學(xué)習(xí)教程之HTML屬性綁定的方法

    Angular4學(xué)習(xí)教程之HTML屬性綁定的方法

    這篇文章主要給大家介紹了關(guān)于Angular4學(xué)習(xí)教程之HTML屬性綁定的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Angular使用Md5加密的解決方法

    Angular使用Md5加密的解決方法

    這篇文章主要介紹了Angular使用Md5加密的解決方法,需要的朋友可以參考下
    2017-09-09
  • 詳解Angular數(shù)據(jù)綁定及其實(shí)現(xiàn)方式

    詳解Angular數(shù)據(jù)綁定及其實(shí)現(xiàn)方式

    數(shù)據(jù)綁定是將應(yīng)用程序UI或用戶界面綁定到模型的機(jī)制。使用數(shù)據(jù)綁定,用戶將能夠使用瀏覽器來操縱網(wǎng)站上存在的元素。
    2021-05-05
  • Angular 4 指令快速入門教程

    Angular 4 指令快速入門教程

    本篇文章主要介紹了Angular 4 指令快速入門教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Angularjs通過指令監(jiān)聽ng-repeat渲染完成后執(zhí)行腳本的方法

    Angularjs通過指令監(jiān)聽ng-repeat渲染完成后執(zhí)行腳本的方法

    指令是angular的核心功能之一,用好了事半功倍,監(jiān)聽ng-repeat執(zhí)行狀態(tài)僅僅是它功能的冰山一角吧。下面這篇文章主要介紹了Angularjs通過指令監(jiān)聽ng-repeat渲染完成后執(zhí)行腳本的方法,需要的朋友可以參考下。
    2016-12-12
  • AngularJS基礎(chǔ) ng-href 指令用法

    AngularJS基礎(chǔ) ng-href 指令用法

    本文主要介紹AngularJS ng-href 指令,這里對ng-href 基礎(chǔ)資料進(jìn)行詳細(xì)介紹,并附代碼實(shí)例,有興趣的小伙伴可以參考下
    2016-08-08
  • Angular 5.x 學(xué)習(xí)筆記之Router(路由)應(yīng)用

    Angular 5.x 學(xué)習(xí)筆記之Router(路由)應(yīng)用

    本篇文章主要介紹了Angular 5.x 學(xué)習(xí)筆記之Router(路由)應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • Angularjs中controller的三種寫法分享

    Angularjs中controller的三種寫法分享

    這篇文章給大家介紹了angularjs中controller的三種寫法,每種寫法都給出了示例代碼,對大家理解和學(xué)習(xí)很有幫助,有需要的朋友們可以參考借鑒。
    2016-09-09
  • Angular2中select用法之設(shè)置默認(rèn)值與事件詳解

    Angular2中select用法之設(shè)置默認(rèn)值與事件詳解

    在Angular.JS中可以使用數(shù)組或?qū)ο髣?chuàng)建一個(gè)下拉列表選項(xiàng)。關(guān)于Angular.js中select的基礎(chǔ)相信大家應(yīng)該都已經(jīng)了解了,那么下面這篇文章主要給大家介紹了Angular2中select用法之設(shè)置默認(rèn)值與事件的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • AngularJS基礎(chǔ)知識(shí)

    AngularJS基礎(chǔ)知識(shí)

    這篇文章主要介紹了AngularJS基礎(chǔ)知識(shí),包括AngularJS定義和特點(diǎn)以及構(gòu)建AngularJS應(yīng)用的方法,推薦給大家。
    2014-12-12

最新評(píng)論

修文县| 民丰县| 建平县| 胶州市| 秭归县| 洪雅县| 广东省| 浦北县| 双流县| 象州县| 成武县| 江油市| 阳朔县| 靖江市| 杭锦后旗| 西城区| 越西县| 孝感市| 永春县| 河间市| 马尔康县| 宜昌市| 忻州市| 南开区| 鱼台县| 茂名市| 永嘉县| 建水县| 凤台县| 长宁县| 秦皇岛市| 东兴市| 威宁| 祁门县| 遂溪县| 西和县| 原平市| 龙口市| 烟台市| 万盛区| 呼玛县|