• 程序ajax请求公共组件:appjqueryhttp.js Cryst


      1 // --------网络操作--------------------
      2 $.HTTP = {
      3     getUrlParam : function(name) {
      4         var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
      5         var r = window.location.search.substr(1).match(reg);
      6         if (r != null)
      7             return unescape(r[2]);
      8         return null;
      9     },
     10     // 设置url参数值,ref参数名,value新的参数值
     11     setUrlParam:function (url,ref, value)
     12     {
     13         var str = "";
     14         if (url.indexOf('?') != -1)
     15             str = url.substr(url.indexOf('?') + 1);
     16         else
     17             return url + "?" + ref + "=" + value;
     18         var returnurl = "";
     19         var setparam = "";
     20         var arr;
     21         var modify = "0";
     22         if (str.indexOf('&') != -1) {
     23             arr = str.split('&');
     24             for (i in arr) {
     25                 if (arr[i].split('=')[0] == ref) {
     26                     setparam = value;
     27                     modify = "1";
     28                 }
     29                 else {
     30                     setparam = arr[i].split('=')[1];
     31                 }
     32                 returnurl = returnurl + arr[i].split('=')[0] + "=" + setparam + "&";
     33             }
     34             returnurl = returnurl.substr(0, returnurl.length - 1);
     35             if (modify == "0")
     36                 if (returnurl == str)
     37                     returnurl = returnurl + "&" + ref + "=" + value;
     38         }
     39         else {
     40             if (str.indexOf('=') != -1) {
     41                 arr = str.split('=');
     42                 if (arr[0] == ref) {
     43                     setparam = value;
     44                     modify = "1";
     45                 }
     46                 else {
     47                     setparam = arr[1];
     48                 }
     49                 returnurl = arr[0] + "=" + setparam;
     50                 if (modify == "0")
     51                     if (returnurl == str)
     52                         returnurl = returnurl + "&" + ref + "=" + value;
     53             }
     54             else
     55                 returnurl = ref + "=" + value;
     56         }
     57         return url.substr(0, url.indexOf('?')) + "?" + returnurl;
     58     },
     59 
     60     // 删除参数值
     61     deleteUrlParam:function (url,ref) {
     62         var str = "";
     63         if (url.indexOf('?') != -1) {
     64             str = url.substr(url.indexOf('?') + 1);
     65         }
     66         else {
     67             return url;
     68         }
     69         var arr = "";
     70         var returnurl = "";
     71         var setparam = "";
     72         if (str.indexOf('&') != -1) {
     73             arr = str.split('&');
     74             for (i in arr) {
     75                 if (arr[i].split('=')[0] != ref) {
     76                     returnurl = returnurl + arr[i].split('=')[0] + "=" + arr[i].split('=')[1] + "&";
     77                 }
     78             }
     79             return url.substr(0, url.indexOf('?')) + "?" + returnurl.substr(0, returnurl.length - 1);
     80         }
     81         else {
     82             arr = str.split('=');
     83             if (arr[0] == ref) {
     84                 return url.substr(0, url.indexOf('?'));
     85             }
     86             else {
     87                 return url;
     88             }
     89         }
     90     },
     91     /**
     92      * 
     93      * @param opt
     94      *            opt.url,postdata, success, failure, error
     95      */
     96     obj : function(opt) {
     97 
     98         var formData;
     99 
    100         if (opt.postType) {
    101             switch (opt.postType) {
    102             case "multipart":
    103                 formData = new FormData($(opt.formId)[0]);
    104                 break;
    105             case "form":
    106                 if(opt.formId){
    107                     formData=$(opt.formId).serialize();
    108                 }else{
    109                     formData=$.param(opt.ajaxData);
    110                 }
    111                 if(opt.extData){
    112                     formData += "&"+$.param(opt.extData);
    113                 }
    114                 break;
    115             case "json":
    116                 formData = JSON.stringify(opt.ajaxData);
    117                 break;
    118             default:
    119                 return;
    120             }
    121         } else {
    122             formData = opt.ajaxData;
    123         }
    124 
    125         var sopt = {
    126             type : opt.type == undefined ? "post" : opt.type,
    127             async : false,
    128             url : opt.url,
    129             data : formData,
    130             dataType : "json",
    131             success : function(json) {
    132                 if (json.stat == 1) {
    133                     if (opt.success != undefined)
    134                         opt.success(json.data);
    135                 } else {
    136                     if (opt.failure != undefined)
    137                         opt.failure(json);
    138                     else if (json.code != undefined) {
    139                         $.HTTP.show_code_err(json);
    140                     } else {
    141                         console.log("success不等于true   【url: " + opt.url + "】");
    142                         if (json.errorMessages != null
    143                                 && json.errorMessages.length > 0) {
    144                             console.error("错误", json.errorMessages[0]);
    145                         }
    146                     }
    147 
    148                 }
    149 
    150             },
    151             error : function(XMLHttpRequest, textStatus, errorThrown) {
    152                 var info = "XMLHttpRequest:" + JSON.stringify(XMLHttpRequest)
    153                         + " ;textStatus:" + textStatus + "; errorThrown:"
    154                         + JSON.stringify(errorThrown) + ";   【" + opt.url + "】";
    155                 console.log(info);
    156                 if (opt.error != undefined)
    157                     opt.error(XMLHttpRequest, textStatus, errorThrown);
    158                 else {
    159                     console.error("请求错误", "系统发生请求错误,请联系管理员解决。");
    160                 }
    161             }
    162         };
    163         if (opt.postType) {
    164             switch (opt.postType) {
    165             case "multipart":
    166                 sopt.async = false;
    167                 sopt.cache = false;
    168                 sopt.contentType = false;
    169                 sopt.processData = false;
    170                 break;
    171             case "form":
    172                 sopt.contentType = 'application/x-www-form-urlencoded';
    173                 break;
    174             case "json":
    175                 sopt.contentType = 'application/json';
    176                 sopt.dataType = "json";
    177                 break;
    178             default:
    179                 return;
    180             }
    181         }
    182         $.ajax($.extend(sopt, opt.ajaxOption));
    183     },
    184     list : function(opt) {
    185 
    186         var formData;
    187 
    188         if (opt.postType) {
    189             switch (opt.postType) {
    190             case "multipart":
    191                 formData = new FormData($(opt.formId)[0]);
    192                 break;
    193             case "form":
    194                 if(opt.formId){
    195                     formData=$(opt.formId).serialize();
    196                 }else{
    197                     formData=$.param(opt.ajaxData);
    198                 }
    199                 if(opt.extData){
    200                     formData += "&"+$.param(opt.extData);
    201                 }
    202                 break;
    203             case "json":
    204                 formData =JSON.stringify(opt.ajaxData);
    205                 break;
    206             default:
    207                 return;
    208             }
    209         } else {
    210             formData = opt.ajaxData;
    211         }
    212 
    213         var sopt = {
    214             type : opt.type == undefined ? "get" : opt.type,
    215             async : false,
    216             url : opt.url,
    217             data : formData,
    218             dataType : "json",
    219             success : function(json) {
    220                 if (json.stat == 1) {
    221                     if (opt.success != undefined)
    222                         opt.success(json.list, json.pageInfo);
    223                 } else {
    224                     if (opt.failure != undefined)
    225                         opt.failure(json);
    226                     else if (json.code != undefined) {
    227                         $.HTTP.show_code_err(json);
    228                     } else {
    229                         console.log("success不等于true   【url: " + opt.url + "】");
    230                         if (json.errorMessages != null
    231                                 && json.errorMessages.length > 0) {
    232                             console.error("错误", json.errorMessages[0]);
    233                         }
    234                     }
    235                 }
    236 
    237             },
    238             error : function(XMLHttpRequest, textStatus, errorThrown) {
    239                 var info = "XMLHttpRequest:" + JSON.stringify(XMLHttpRequest)
    240                         + " ;textStatus:" + textStatus + "; errorThrown:"
    241                         + JSON.stringify(errorThrown) + ";   【" + opt.url + "】";
    242                 console.log(info);
    243                 if (opt.error != undefined)
    244                     opt.error(XMLHttpRequest, textStatus, errorThrown);
    245                 else {
    246                     console.error("请求错误", "系统发生请求错误,请联系管理员解决。");
    247                 }
    248             }
    249         };
    250 
    251         if (opt.postType) {
    252             switch (opt.postType) {
    253             case "multipart":
    254                 sopt.async = false;
    255                 sopt.cache = false;
    256                 sopt.contentType = false;
    257                 sopt.processData = false;
    258                 break;
    259             case "form":
    260                 sopt.contentType = 'application/x-www-form-urlencoded';
    261                 break;
    262             case "json":
    263                 sopt.contentType = 'application/json';
    264                 sopt.dataType = "json";
    265                 break;
    266             default:
    267                 return;
    268             }
    269         }
    270 
    271         $.ajax($.extend(sopt, opt.ajaxOption));
    272     },
    273     show_code_err : function(json) {
    274         if (json.code == 1403) {
    275             showLogin();
    276             return;
    277         } else if (json.errorMessages != undefined
    278                 && json.errorMessages != null && json.errorMessages.length > 0) {
    279             alert(json.errorMessages[0]);
    280             console.error("错误", json.errorMessages[0]);
    281         }
    282 
    283     }
    284 }
  • 相关阅读:
    监听本机tcp和udp的端口
    sysstat-----获取服务器负载历史记录
    inode索引详解
    tcpdump详解
    Windws Server 2008 R2 WEB环境配置之IIS7/IIS7.5+FastCGI+PHP 5.6.4+MYSQL+phpMyAdmin
    echo 命令
    带宽、流量、下载速度之间的换算
    windows 下解决 Time_Wait 和 CLOSE_WAIT 方法
    LNMP环境部署
    关于旅行
  • 原文地址:https://www.cnblogs.com/cryst/p/5842917.html
Copyright © 2020-2023  润新知