zoukankan      html  css  js  c++  java
  • 工作笔记-javascript-网络层封装

    /**
    * @Author Mona
    * @Date 2016-12-08
    * @description 网络层封装
    */
    
    /**
     * 封装基本请求方式
     */
    window.BaseRequest = (function () {
        //发送请求的所有方式
        var request = {};
    
        /**
         * 基本请求
         */
        function baseRequestFunc(type,param,url,async,contentType,dataType,processData,opt_suc,paramType,opt_error) {
            var cur_url = contextPath+url;
            var now_url = '';
            //当把参数作为路由的一部分时此时的参数为字符串;
            (paramType&&paramType=='url')?(now_url=cur_url+'/'+param+'.json'):(now_url=cur_url+'.json');
            //这个里面是最基本的ajax
            $.ajax({
                type:type,
                data:param,
                url:now_url,
                async:async,//默认为true
                contentType:contentType,//默认为application/x-www-form-urlencoded
                dataType:dataType,//默认为预期服务器返回的数据类型
                processData:processData,//默认为true
                success:function(data,textStatus,jqXHR){
                    if($.isFunction(opt_suc)){
                        opt_suc(data,textStatus,jqXHR);
                    }
                },
                error:function(jqXHR,textStatus,errorThrown){
                    renderErrorMsg(jqXHR,textStatus,errorThrown);
                    if($.isFunction()){
                        opt_error();
                    }
                }
            })
    
        }
    
        /**
         * get异步请求方式
         */
        request.get = function (param,url,callback,paramType) {
            baseRequestFunc('get',param,url,true,'application/x-www-form-urlencoded','json',true,callback,paramType);
        }
    
        /**
         * get同步请求方式
         * param {param} object 
         */
        request.sync_get = function (param,url,callback,paramType) {
            baseRequestFunc('get',param,url,false,'application/x-www-form-urlencoded','json',true,callback,paramType);
        }
    
        /**
         * post异步请求方式
         * param {param} object 
         */
        request.post = function (param,url,callback,paramType) {
            baseRequestFunc('post',param,url,true,'application/json','json',true,callback,paramType);
        }
    
        /**
         * post的requestBean请求方式 这种请求方式适用于字段较多,且需要formdata方式上传文件
         * param {param} object  {param.files} array {param.fileNames} array {param.inputData} object
         */
        request.post_multipart_form_data = function (param,url,callback,paramType,formData,opt_error) {
            var form_data = new FormData();
            if(param.files && param.files.length>0){
               $.each(param.files,function(k,info_name){
                    form_data.append('files',document.getElementById(info_name).files[0])
                }) 
            }
    
            if(param.fileNames && param.fileNames.length>0){
                $.each(param.fileNames,function(i,item){
                    form_data.append('fileNames',item);
                })
            }
            if(formData && formData=='formdata'){
                $.each(param.inputData,function(i,item){
                    form_data.append(i,item);
                })
            }else{
               form_data.append('requestBean', new Blob([JSON.stringify(param.inputData)], {
                    type: "application/json"
                })); 
            }   
            baseRequestFunc('post',form_data,url,true,false,'json',false,callback,paramType,opt_error);
        }
    
        /**
         * post的formdata请求方式
         * param {param} object
         */
        request.post_form_data = function(param,url,callback,paramType,opt_error){
            var form_data = new FormData();
            $.each(param,function(i,item){
                form_data.append(i,item);
            })
            baseRequestFunc('post',form_data,url,true,false,'json',false,callback,opt_error);
        }
    
        /**
         * post的JSON.stringify(param)请求方式
         * param {param} object
         */
         request.post_string_data = function(param,url,callback,paramType){
            var cur_data = JSON.stringify(param);
            baseRequestFunc('post',cur_data,url,true,'application/json','json',false,callback);
         }
        return request;
    })();
    

      

  • 相关阅读:
    深入理解计算机系统cp1:存储单位与编码
    25个JavaScript数组方法代码示例
    中间人攻击,HTTPS也可以被碾压
    用了这么久HTTP, 你是否了解Content-Length?
    C#证明静态方法中的成员在线程之间是独立的
    ASP.NET Core Web API官方文档(链接)
    C#中,隐式转换(implicit)和显式转换(explicit)重载方法,不支持将接口类型作为转换的源类型或目标类型
    ASP.NET Core MVC 和Razor页面中的模型验证(链接)
    C#中JSON字符串中的转义字符
    使用文件流,读写网络共享盘
  • 原文地址:https://www.cnblogs.com/MonaSong/p/6281589.html
Copyright © 2011-2022 走看看