当前位置: 首页 > news >正文

ionic之angular拦截器

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

ionic作为应用,肯定和服务器有数据交换,分散处理api太繁琐,所以一般用拦截器来集中处理。

主要由以下几个方面的应用:

  1. 服务器地址注入
  2. 错误处理
  3. token注入
  4. 日志处理
  5. 无token时跳转至登录页面
  6. ...

有四个方法

request: function(config)
requestError: function(config)
response: function(response)
responseError: function(response)

基本看方法名称就知道其意义。具体的用法、写法请参考:http://my.oschina.net/ilivebox/blog/290881?p=1

1、服务器注入、token注入:

request: function(config) {
   if (config.params)
       config.params['x-session-token'] = CacheService.token();
   // 远程服务,统一添加服务器地址
   var uri = config.url;
   if (config.method == "JSONP") {
      config.url = fGetHost() + uri;
      config.uri = uri;
   }
   return config;
}

2、token超时:

response: function(response) {
    if (response.config.method == "JSONP") {
        if (!fIsWhiteUri(response.config.uri)) {
            var login = response.data['x-session-login'];
            // 强制用户登录
            if (!login) {
               $location.path('/user/login');
               return $q.reject(response);
            }
        }
    }
    return response;
}
说明:1、每次都传入 x-session-token参数以便后端验证;

2、后台返回

x-session-login:false
表示token过期,需要重新登录。





转载于:https://my.oschina.net/twinkling/blog/474526

相关文章:

  • 运行时间(Java版本)—转换毫秒到时分秒日期
  • hibernate_使用笔记
  • SharePoint 命令 安装、部署、回收、删除、更新 wsp包 (Solution)
  • Lisp-Stat 数据读取与绘图
  • 前后端分离了,然后呢?(转)
  • 向上取整和向下取整
  • oracle 抽取 对方大字段数据
  • Kubernetes初步
  • 谁是面向对象的设计霸主?(上)
  • Java 兑换ObjectC代码
  • [老老实实学WCF] 第三篇 在IIS中寄存服务
  • cocos2d 缓存池 对象的再利用
  • 部署DNS服务
  • Skype for Business Server 2015-13-IISARR-2-发布-1-OWA-ECP
  • AFNetworking 使用总结 (用法+JSON解析)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 230. Kth Smallest Element in a BST
  • Angular 2 DI - IoC DI - 1
  • egg(89)--egg之redis的发布和订阅
  • Facebook AccountKit 接入的坑点
  • IOS评论框不贴底(ios12新bug)
  • JavaScript HTML DOM
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript设计模式之工厂模式
  • Lsb图片隐写
  • nodejs:开发并发布一个nodejs包
  • Redis 懒删除(lazy free)简史
  • Tornado学习笔记(1)
  • vue的全局变量和全局拦截请求器
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 老板让我十分钟上手nx-admin
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 用jQuery怎么做到前后端分离
  • 云大使推广中的常见热门问题
  • 你对linux中grep命令知道多少?
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​马来语翻译中文去哪比较好?
  • #etcd#安装时出错
  • #数学建模# 线性规划问题的Matlab求解
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (第27天)Oracle 数据泵转换分区表
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)springcloud实战之config配置中心
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (接口封装)
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)c52学习之旅-点亮LED灯
  • (转)ABI是什么
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)VC++中ondraw在什么时候调用的
  • ***通过什么方式***网吧
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .gitattributes 文件