废话不多说了,直接给大家贴代码了,具体代码如下所述;
<!DOCTYPE html>
<html ng-app="nickApp">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>interceptors</title>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script>
/*
$http service在Angular中用于简化与后台的交互过程,其本质上使用XMLHttpRequest或JSONP进行与后台的数据交互。
在与后台的交互过程中,可能会对每条请求发送到Server之前进行预处理(如加入token),或者是在Server返回数据到达客户端还未被处理之前进行预处理(如将非JSON格式数据进行转换);
当然还有可能对在请求和响应过程过发生的问题进行捕获处理。所以Angular为我们提供了$http拦截器,用来实现上述需求。*/
/*
$httpProvider中有一个 interceptors 数组,而所谓拦截器只是一个简单的注册到该数组中的常规服务工厂。
1 首先 创建一个拦截器服务工厂
*/
angular.module('nickApp', [])
.factory('NickInterceptor', ['$q', function ($q) {
return {
// 可选,拦截成功的请求
/*
该方法会在$http发送请求到后台之前执行,因此你可以修改配置或做其他的操作。
该方法接收请求配置对象(request configuration object)作为参数,然后必须返回配置对象或者promise 。
如果返回无效的配置对象或者 promise 则会被拒绝,导致$http 调用失败
*/
request: function (config) {
// 进行预处理
// 例如加令牌
config.headers['Authorization'] = 'token666';
/*
Request Headers
token:token666 //加的令牌
*/
return config || $q.when(config);
},
// 可选,拦截成功的响应
/*
该方法会在$http接收到从后台过来的响应之后执行,因此你可以修改响应或做其他操作。
该方法接收响应对象(response object)作为参数,
然后必须返回响应对象或者promise。响应对象包括了请求配置(request configuration),头(headers),状态(status)和从后台过来的数据(data)。
如果返回无效的响应对象或者 promise 会被拒绝,导致$http调用失败。
*/
response: function (response) {
// 进行预处理
// 例如 JSON.parse(response)等
return response || $q.when(reponse);
},
// 可选,拦截失败的请求
/*
有时一个请求发送失败或者被拦截器拒绝了。requestError拦截器会捕获那些被上一个请求拦截器中断的请求。
它可以用来恢复请求或者有时可以用来撤销请求之前所做的配置,比如关闭遮罩层,显示进度条,激活按钮和输入框之类的。
*/
requestError: function (rejection) {
// 对失败的请求进行处理
// 例如 统一的弹窗提示
return $q.reject(rejection);
},
// 可选,拦截失败的响应
/*
有时候我们后台调用失败了。也有可能它被一个请求拦截器拒绝了,或者被上一个响应拦截器中断了。
在这种情况下,响应异常拦截器可以帮助我们恢复后台调用。
*/
responseError: function (rejection) {
// 对失败的响应进行处理
// 例如 统一的弹窗提示
return $q.reject(rejection);
}
};
}])
/*
$httpProvider中有一个 interceptors 数组,而所谓拦截器只是一个简单的注册到该数组中的常规服务工厂。
2 在config方法中,将拦截器加入到$httpProvider.interceptors数组中
*/
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push('NickInterceptor');
}])
.controller('bodyCtl', ['$scope', '$http', function ($scope, $http) {
$scope.test1 = function () {
console.log(11);
$http.get('interceptors.html');
};
}])
</script>
</head>
<body ng-controller="bodyCtl">
<button class="btn" ng-click="test1()">click me</button>
<div ng-view></div>
</body>
</html>
以上所述是小编给大家介绍的Angular中的interceptors拦截器,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
# angular
# interceptors拦截器
# vue-resource 拦截器interceptors使用详解
# 分享Angular http interceptors 拦截器使用(推荐)
# 浅谈Vue网络请求之interceptors实际应用
# 详解AngularJS用Interceptors来统一处理HTTP请求和响应
# axios的interceptors多次执行问题解决
# 拦截器
# 可选
# 你可以
# 令牌
# 中有
# 组中
# 会在
# 给大家
# 只是一个
# 所述
# 小编
# 到该
# 被拒
# 是在
# 也有
# 说了
# 拒绝了
# 不多
# 其他的
# 会对
相关文章:
,如何利用word制作宣传手册?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何挑选最适合建站的高性能VPS主机?
制作企业网站建设方案,怎样建设一个公司网站?
如何通过虚拟主机空间快速建站?
网站企业制作流程,用什么语言做企业网站比较好?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
网站制作难吗安全吗,做一个网站需要多久时间?
七夕网站制作视频,七夕大促活动怎么报名?
如何在腾讯云免费申请建站?
如何通过老薛主机一键快速建站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何在万网自助建站平台快速创建网站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
建站主机选购指南:核心配置优化与品牌推荐方案
建站之星多图banner生成与模板自定义指南
如何在Windows 2008云服务器安全搭建网站?
广平建站公司哪家专业可靠?如何选择?
孙琪峥织梦建站教程如何优化数据库安全?
如何选择高效可靠的多用户建站源码资源?
高端建站三要素:定制模板、企业官网与响应式设计优化
C#如何在一个XML文件中查找并替换文本内容
网站制作公司排行榜,抖音怎样做个人官方网站
独立制作一个网站多少钱,建立网站需要花多少钱?
如何制作算命网站,怎么注册算命网站?
如何通过商城免费建站系统源码自定义网站主题?
黑客如何利用漏洞与弱口令入侵网站服务器?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
如何选择最佳自助建站系统?快速指南解析优劣
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
深圳网站制作案例,网页的相关名词有哪些?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
网站app免费制作软件,能免费看各大网站视频的手机app?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
桂林网站制作公司有哪些,桂林马拉松怎么报名?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何通过万网虚拟主机快速搭建网站?
如何确保西部建站助手FTP传输的安全性?
如何生成腾讯云建站专用兑换码?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
在线制作视频的网站有哪些,电脑如何制作视频短片?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何选择服务器才能高效搭建专属网站?
宝塔新建站点报错如何解决?
建站主机选购指南:核心配置与性价比推荐解析
*请认真填写需求信息,我们会在24小时内与您取得联系。