Angular中的interceptors拦截器
发布时间 - 2026-01-11 02:02:24 点击率:次废话不多说了,直接给大家贴代码了,具体代码如下所述;
<!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多次执行问题解决
# 拦截器
# 可选
# 你可以
# 令牌
# 中有
# 组中
# 会在
# 给大家
# 只是一个
# 所述
# 小编
# 到该
# 被拒
# 是在
# 也有
# 说了
# 拒绝了
# 不多
# 其他的
# 会对
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python文件流缓冲机制_IO性能解析【教程】
如何快速上传建站程序避免常见错误?
如何用wdcp快速搭建高效网站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
利用JavaScript实现拖拽改变元素大小
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
微信公众帐号开发教程之图文消息全攻略
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
如何用PHP工具快速搭建高效网站?
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
如何在 React 中条件性地遍历数组并渲染元素
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Swift中循环语句中的转移语句 break 和 continue
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
如何快速搭建高效WAP手机网站?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
lovemo网页版地址 lovemo官网手机登录
Laravel定时任务怎么设置_Laravel Crontab调度器配置
JavaScript如何操作视频_媒体API怎么控制播放
🚀拖拽式CMS建站能否实现高效与个性化并存?
高端云建站费用究竟需要多少预算?
如何基于云服务器快速搭建网站及云盘系统?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
浅谈redis在项目中的应用
公司门户网站制作流程,华为官网怎么做?
教你用AI润色文章,让你的文字表达更专业
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Python文件异常处理策略_健壮性说明【指导】
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel如何实现本地化和多语言支持?(i18n教程)
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
如何有效防御Web建站篡改攻击?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何确认建站备案号应放置的具体位置?
如何生成腾讯云建站专用兑换码?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何快速使用云服务器搭建个人网站?
如何做网站制作流程,*游戏网站怎么搭建?

