全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Angular中的interceptors拦截器

废话不多说了,直接给大家贴代码了,具体代码如下所述;

<!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多次执行问题解决  # 拦截器  # 可选  # 你可以  # 令牌  # 中有  # 组中  # 会在  # 给大家  # 只是一个  # 所述  # 小编  # 到该  # 被拒  # 是在  # 也有  # 说了  # 拒绝了  # 不多  # 其他的  # 会对 


相关文章: 云南网站制作公司有哪些,云南最好的招聘网站是哪个?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  网站制作软件有哪些,制图软件有哪些?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  宝塔建站后网页无法访问如何解决?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  建站主机是否属于云主机类型?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何快速搭建自助建站会员专属系统?  如何高效配置香港服务器实现快速建站?  清除minerd进程的简单方法  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  家庭建站与云服务器建站,如何选择更优?  如何快速查询域名建站关键信息?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  广东企业建站网站优化与SEO营销核心策略指南  已有域名如何免费搭建网站?  如何挑选高效建站主机与优质域名?  如何打造高效商业网站?建站目的决定转化率  高性价比服务器租赁——企业级配置与24小时运维服务  名字制作网站免费,所有小说网站的名字?  如何选择香港主机高效搭建外贸独立站?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  中山网站制作网页,中山新生登记系统登记流程?  h5网站制作工具有哪些,h5页面制作工具有哪些?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  如何快速生成凡客建站的专业级图册?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  制作公司内部网站有哪些,内网如何建网站?  宝塔建站助手安装配置与建站模板使用全流程解析  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  微课制作网站有哪些,微课网怎么进?  全景视频制作网站有哪些,全景图怎么做成网页?  建站之星ASP如何实现CMS高效搭建与安全管理?  如何在服务器上配置二级域名建站?  如何在宝塔面板中创建新站点?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Android自定义控件实现温度旋转按钮效果  建站主机功能解析:服务器选择与快速搭建指南  ,怎么用自己头像做动态表情包?  建站主机解析:虚拟主机配置与服务器选择指南  活动邀请函制作网站有哪些,活动邀请函文案?  建站主机服务器选型指南与性能优化方案解析  怀化网站制作公司,怀化新生儿上户网上办理流程?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何正确下载安装西数主机建站助手?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。