angular的请求在项目中经常用到,所以特地封装了一个请求方式,让大家借鉴一下
使用方式:
1、可以更改demoHttpService 为项目的命名(使用方便的一个命名方式即可)
2、使用时直接注入服务 直接调用即可
demoHttpServer.httpServer(url,params,type).then(function(data){});
"use strict";
angular.module('util.demoHttpService', [])
.factory('demoHttpService', ['$http', '$q', function($http,$q) {
return {
httpServer: function(url, params, type) {
var deferred = $q.defer();
postService(url, params, type).then(function(data) {
deferred.resolve(data);
}, function(data) {
deferred.reject(data);
});
return deferred.promise;
}
};
/**
* [postService 请求服务]
* @param {[type]} url [请求地址]
* @param {[object]} params [参数]
* @param {[string]} type [请求方式]
* @return {[type]} [返回数据]
*/
function postService(url, params, type) {
var deferred = $q.defer();
if (angular.isUndefined(type)) {
deferred.reject("所需参数type没有传入!");
alert("所需参数type没有传入!");
return deferred.promise;
}
if (type != 'POST' && type != 'GET') {
deferred.reject("参数【" + type + "】错误!");
alert("参数【" + type + "】错误!");
return deferred.promise;
}
$http({
method: type,
url: url,
data: type == 'POST' ? params : "", //用于get请求
params: type == 'POST' ? "" : params //用于post请求
}).success(function(data, header, config, status) {
deferred.resolve(data);
}).error(function(data, header, config, status) {
if (status === 404) {
alert("您请求资源:【" + url + "】不存在!");
}
deferred.reject(data);
});
return deferred.promise;
}
}]);