加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular $q封装$http get和post请求

发布时间:2020-12-17 09:58:40 所属栏目:安全 来源:网络整理
导读://第一步,定义发送请求的配置信息 angular.module('hkApp').constant('API_ENDPOINT',{host: 'http://testfx.ypcoo.com',port: 80,path: '/index.php/Wap',platform: 'weixin' // string 'weixin or app' 平台常量,通过此参数判断系统是在微信里面使用还是

//第一步,定义发送请求的配置信息

angular.module('hkApp')
.constant('API_ENDPOINT',{
	host: 'http://testfx.ypcoo.com',port: 80,path: '/index.php/Wap',platform: 'weixin' // string 'weixin or app' 平台常量,通过此参数判断系统是在微信里面使用还是在APP里面使用,以便调用不同的微信接口
});

//第二步,定义一个服务,“专门”用来发送get或者post请求

/**
 * 定义ApiService服务
 * 功能:专门向服务器发送post 和 get请求
 * */
angular.module('hkApp')
	.factory('ApiService',["$window","$http","WAP_CONFIG","$q","$log","$ionicLoading",function($window,$http,WAP_CONFIG,$q,$log,$ionicLoading) {
		var _api = WAP_CONFIG;
		var endpoint = _api.host + ':' + _api.port;

		// public api
		return {
			//发送服务器的域名+端口,例如http://deve.sqhzg.cn:80
			endpoint: endpoint,//post请求,第一个参数是URL,第二个参数是向服务器发送的参数(JSON对象),
			post: function(url,data) {
				url = endpoint + url;
				var deferred = $q.defer();
				var tempPromise;
				//显示加载进度
				$ionicLoading.show({
					template: 'Loading...'
				});
				//判断用户是否传递了参数,如果有参数需要传递参数
				if(data != null && data != undefined && data != ""){
					tempPromise = $http.post(url,data);
				}else{
					tempPromise = $http.post(url);
				}
				tempPromise.success(function(data,header,config,status) {
					deferred.resolve(data);
					$ionicLoading.hide();
				}).error(function(msg,code) {
					deferred.reject(msg);
					$log.error(msg,code);
					$ionicLoading.hide();
				});
				return deferred.promise;
			},//get请求,第一个参数是URL,第二个参数是向服务器发送的参数(JSON对象),
			get: function(url,data) {
				url = endpoint + url;
				var deferred = $q.defer();
				var tempPromise;
				//显示加载进度
				$ionicLoading.show({
					template: 'Loading...'
				});
				//判断用户是否传递了参数,如果有参数需要传递参数
				if(data != null && data != undefined && data != ""){
					tempPromise = $http.get(url,data);
				}else{
					tempPromise = $http.get(url);
				}
				tempPromise.success(function(data,code) {
					deferred.reject(msg);
					$ionicLoading.hide();
					$log.error(msg,code);
				});
				return deferred.promise;
			}
		};

	}]);

备注:在请求前添加了$ionicLoading显示,请求返回之后,因此$ionicLoading对象。当遇到服务器压力大的时候,不会出现“白屏” 的情况,提高用户体验

//控制器注入服务,发送请求

.state('index',{
	url:'/app_index',templateURL: 'ABC.html',onEnter :function(){
		//因此底部的导航栏
		$(".index_footer").show();
	},controller:["$scope","$state",'$ionicActionSheet',"setting_user_levelService","userNameService","ApiService",function($scope,$state,$ionicActionSheet,setting_user_levelService,userNameService,ApiService){
		//获取用户信息
		var userInfoPromise = ApiService.post("{:U('UserInfo/getUser')}",{
					"id": "{$Think.session.ADMINID}"
					});
		
		userInfoPromise.then(function(response){
			if(response.status == 1){
				//会员名称
				$scope.typetext = response.data.typetext;
				//积分
				$scope.jifen = response.data.jifen;
				//红包
				$scope.redpacket = response.data.redpacket;
			}
		});
		
	}]
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读