angular-1.x 封装的请求服务

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;
        }
    }]);

你可能感兴趣的:(angular-1.x 封装的请求服务)