首页 > 代码库 > 程序ajax请求公共组件:app-jquery-http.js

程序ajax请求公共组件:app-jquery-http.js

  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 = http://www.mamicode.com/new FormData($(opt.formId)[0]);104                 break;105             case "form":106                 if(opt.formId){107                     formData=http://www.mamicode.com/$(opt.formId).serialize();108                 }else{109                     formData=http://www.mamicode.com/$.param(opt.ajaxData);110                 }111                 if(opt.extData){112                     formData += "&"+$.param(opt.extData);113                 }114                 break;115             case "json":116                 formData =http://www.mamicode.com/ JSON.stringify(opt.ajaxData);117                 break;118             default:119                 return;120             }121         } else {122             formData =http://www.mamicode.com/ 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 != null143                                 && 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 = http://www.mamicode.com/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 = http://www.mamicode.com/new FormData($(opt.formId)[0]);192                 break;193             case "form":194                 if(opt.formId){195                     formData=http://www.mamicode.com/$(opt.formId).serialize();196                 }else{197                     formData=http://www.mamicode.com/$.param(opt.ajaxData);198                 }199                 if(opt.extData){200                     formData += "&"+$.param(opt.extData);201                 }202                 break;203             case "json":204                 formData =http://www.mamicode.com/JSON.stringify(opt.ajaxData);205                 break;206             default:207                 return;208             }209         } else {210             formData =http://www.mamicode.com/ 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 != null231                                 && 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 = http://www.mamicode.com/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 != undefined278                 && json.errorMessages != null && json.errorMessages.length > 0) {279             alert(json.errorMessages[0]);280             console.error("错误", json.errorMessages[0]);281         }282 283     }284 }

 

程序ajax请求公共组件:app-jquery-http.js