美文网首页
angular-1.x 封装的请求服务

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

作者: 如风_周 | 来源:发表于2017-04-12 14:58 被阅读29次

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 封装的请求服务

    angular的请求在项目中经常用到,所以特地封装了一个请求方式,让大家借鉴一下 使用方式:

  • response

    服务器处理请求的流程: 服务器每次收到请求时,都会为这个请求开辟一个新的线程服务器会把客户端的请求数据封装到req...

  • ajax函数封装

    //ajax封装/obj={type: 提交方式 string "",url: 请求道服务器路径 ...

  • Servlet(3)-请求响应的流程

    当用户从浏览器发出请求,而服务器每次收到请求时,都会为请求开辟一个新的线程,而服务器会把请求数据封装到reques...

  • uni-app 服务端请求封装

    自己封装的uni-app服务端请求,包括 异常捕获、loading开启关闭、特殊请求基础地址、header的tok...

  • Flask - 05 请求和响应

    Flask提供了全局的request和 response 来封装客户端请求及服务端响应对象 request请求对象...

  • Android的网络请求框架

    前言 现在很多的app都是依赖网络服务的应用。跟服务器通讯我们就要用到网络请求。网络请求的框架有很多:原生自己封装...

  • vue 封装axios请求(基础版)

    新建页面,封装axios请求; main.js引用封装的请求; 页面使用请求 ————————————————版权...

  • 后羿框架-公共子框架-报文封装

    请求报文封装 请求报文问题描述 框架基于spring-web实现的REST服务接口,接口调用时可基于HTTP的ur...

  • ReactiveCocoa简单使用

    传统网络请求封装 ReactiveCocoa网络请求封装 关于传统的网络请求的封装,大家都很熟悉,这里就不再赘述了...

网友评论

      本文标题:angular-1.x 封装的请求服务

      本文链接:https://www.haomeiwen.com/subject/cksmattx.html