//ajax function AjaxRequest(requestURL) { //请求的URL var url = requestURL; /** 请求参数字符串 */ var queryString = ""; /* (默认: true) 默认设置下,所有请求均为异步请求;如果需要发送同步请求,请将此选项设置为 false */ var async = true; /* 设置浏览器缓存 */ var cache = false; /* 请求方式 */ var type = "get"; /* 服务器返回的类型 */ var dataType = "json"; /* 发送请求前可修改 XMLHttpRequest 对象的函数 */ var beforeSend = null; /* (默认: 自动判断 (xml 或 html)) 请求失败时调用函数 */ var error = null; /* 请求成功后回调函数。参数:服务器返回数据,数据格式 */ var success = null; /* 请求完成后回调函数 (请求成功或失败时均调用) */ var complete = null; /** ************************************************* */ this.setQueryString = function (qs) { queryString = qs; } this.getQueryString = function () { return queryString; } this.setUsePOST = function () { type = "POST"; } this.setUseGET = function () { type = "GET"; } this.setAsync = function (asyncBoolean) { async = asyncBoolean; } this.setBeforeSend = function (func) { beforeSend = func; } this.setError = function (func) { error = func; } this.setSuccess = function (func) { success = func; } this.setComplete = function (func) { complete = func; } /** send a Ajax Request */ this.sendRequest = function () { var bl = (url.indexOf("?") == -1 ? false : true); $.ajax({ type: type, url: url + (bl ? "&" : "?") + "ts=" + Math.round(Math.random() * 100), data: queryString, dataType: dataType, beforeSend: beforeSend, //contentType: "application/json", error: error, success: success, complete: complete }); } } /* pUrl-访问URL pSuccess-成功后运行函数 pError-失败后运行函数 showPg-是否显示加载 msg-加载提示 type-同步还是异步 */ function getPermissionAjax(pUrl, pSuccess, pError, showPg, msg, type) { if (showPg) { progressShow(msg); } var errorFunc = null; var successFunc = null; errorFunc = function (data, status, error) { if (showPg) progressHide(); alert("服务器返回错误!"); }; successFunc = function (data) { if (data == null) return; //显示进度 if (showPg) progressHide(); switch (data.type) { case "login": { loginIn(); break; } case "success": { pSuccess(data.result); break; } case "error": { if (!pError || pError == null) { alert(data.result); } else { pError(data.result); } break; } default: { alert(data.result); break; } } }; var ajax = new AjaxRequest(pUrl); if (type != "sync") ajax.setAsync(false); ajax.setError(errorFunc); ajax.setSuccess(successFunc); ajax.sendRequest(); } function getJsonAjaxSync(pUrl, pSuccess, pError, showPg, msg) { getPermissionAjax(pUrl, pSuccess, pError, showPg, msg, "sync"); } function getJsonAjax(pUrl, pSuccess, pError, showPg, msg) { getPermissionAjax(pUrl, pSuccess, pError, showPg, msg, ""); } function postPermissionAjax(pUrl, pParm, pSuccess, pError, showPg, msg) { if (showPg) progressShow(msg); var ajax = new AjaxRequest(pUrl); var errorFunc = null; var successFunc = null; if (!pError) { errorFunc = function (data) { if (showPg) progressHide(); alert("服务器返回错误!"); } successFunc = function (data) { if (showPg) progressHide(); switch (data.type) { case "login": { loginIn(); break; } case "success": { pSuccess(data.result); break; } default: { alert(data.result); break; } } } } else { errorFunc = pError; successFunc = pSuccess; } ajax.setUsePOST(); ajax.setError(errorFunc); ajax.setSuccess(successFunc); ajax.setQueryString(pParm); ajax.sendRequest(); }