| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- //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();
- }
|