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;
        }
    }]);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,250评论 4 61
  • 人们总以为孩子的心理是缤纷的兔子洞,殊不知生出了多少支离的失乐园。 原来所有的噩梦都环环相扣,我也越陷越深。 【周...
    Rita的毒鸡汤阅读 358评论 0 0
  • 撞死了,或者把墙撞破了。 最可怕的是没有一个害你的心却步步推入深渊,而不自知。 我愿头撞南墙,随死不悔。不知道我要...
    一个说书人阅读 229评论 0 0
  • 《父与子》描写的是父与子冲突的主题。这一冲突在屠格涅夫笔下着上了时代的色彩。巴扎罗父与子夫代表了19世纪60年代的...
    思雨YY阅读 363评论 0 1