$http服务封装
.factory('htp',function(){ // htp.runServiceWithSession() // htp.runService() // htp.runService($http, $ionicLoading, "member.register", // $scope.user, function(data, status){} // 错误处理 函数 function callErrorFunction(errorFun, data, status, $ionicLoading,$ionicPopup){ if (errorFun) errorFun.call(this, data, status); else { // alert(msg); if (typeof (data) == 'string') { if ($ionicPopup) $ionicPopup.alert({ template : data, okText : "确定", okType : 'button-confirm', cancelType : 'button-cancel', cssClass : 'custom_popup' }); else if ($ionicLoading) $ionicLoading.show({ template : data, duration : 2000 }); } else { if(data.solution!=''&&data.solution!=undefined){ if ($ionicPopup) $ionicPopup.alert({ template : data.rtnmessage + "," + data.solution, okText : "确定", okType : 'button-confirm', cancelType : 'button-cancel', cssClass : 'custom_popup' }); else if ($ionicLoading) $ionicLoading.show({ template : data.rtnmessage + "," + data.solution, duration : 2000 }); }else{ if ($ionicPopup) $ionicPopup.alert({ template : data.rtnmessage, okText : "确定", okType : 'button-confirm', cancelType : 'button-cancel', cssClass : 'custom_popup' }); else if ($ionicLoading) $ionicLoading.show({ template : data.rtnmessage, duration : 2000 }); } } } } return{ // init: function(){}, runServiceWithSession: function($http, $ionicLoading, $state, method, bizObj,successFun, errorFun,timeOut){ runService($http, $ionicLoading, method, bizObj, successFun, function(data, status) { if (data.rtncode == 'account.session.timeout' || data.rtncode == 'account.session.invalid' || (data.rtncode != undefined && data.rtncode .indexOf('need login') > -1)) { $state.go('logon', {}); } else { AmApp.callErrorFunction(errorFun, data, status, $ionicLoading); } },timeOut); }, runService: function($http, $ionicLoading, $ionicPopup, method, bizObj,successFun, errorFun,timeOut){ console.log(bizObj); if(typeof ($ionicPopup) == 'string'){ timeOut = errorFun; errorFun = successFun; successFun = bizObj; bizObj = method; method = $ionicPopup; $ionicPopup = undefined; }; var timeOut =(timeOut)?timeOut:1500; if(navigator && navigator.connection && navigator.connection.type == 'none'){ }else{ // $http数据交互 $http({ method : 'POST', url : url, data : bizObj, headers : { 'Content-Type' : 'application/x-www-form-urlencoded;charset=UTF-8' }, transformRequest : function(obj) { var str = []; for ( var p in obj) str .push(encodeURIComponent(p) + "=" + encodeURIComponent(encodeURIComponent(obj[p]))); return str.join("&"); }, timeout : timeOut }) .success(function(data, status, header, config){ if ($ionicLoading) $ionicLoading.hide(); if (status == 200) { if (typeof (data) == 'string') { callErrorFunction(errorFun, data, status, $ionicLoading, $ionicPopup); } else { if (data.issuccess == true) successFun.call(this, data.result, status); else callErrorFunction(errorFun, data, status, $ionicLoading, $ionicPopup); } } else { callErrorFunction(errorFun, "数据获取错误", status, $ionicLoading, $ionicPopup); } }) .error(function(data, status, header, config){ if ($ionicLoading) $ionicLoading.hide(); if (status == 500) callErrorFunction(errorFun, "检测到服务状态异常", status, $ionicLoading, $ionicPopup); else if (status == 0) callErrorFunction(errorFun, method + "连接超时", status, $ionicLoading, $ionicPopup); else callErrorFunction(errorFun, "网络连接错误", status, $ionicLoading, $ionicPopup); }) } }, } })