標籤:
ionic作為應用,肯定和伺服器有資料交換,分散處理api太繁瑣,所以一般用攔截器來集中處理。
主要由以下幾個方面的應用:
- 伺服器位址注入
- 錯誤處理
- token注入
- Tlog
- 無token時跳轉至登入頁面
- ...
有四個方法
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到期,需要重新登入。
ionic之angular攔截器