ionic之angular拦截器

原创
2015/07/04 13:21
阅读数 2.4K

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过期,需要重新登录。





展开阅读全文
打赏
0
6 收藏
分享
加载中
更多评论
打赏
0 评论
6 收藏
0
分享
返回顶部
顶部