Ajax调用记录

本文从网络COPY


/** 全局ajax对象 */
var ajax = new Object();
var ajaxCore = null;

/**
* @see 创建ajax核心对象,兼容浏览器有:IE6,7,8,9,谷歌,火狐,欧朋,360极速,360安全,苹果,搜狗,遨游,猎豹,腾讯
* @return XMLHttpRequest
*/
ajax.getCore = function() {
var xmlHttp = null;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
if (xmlHttp.overrideMimeType) {
xmlHttp.overrideMimeType("text/xml");
}
} else {
if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
if (!xmlHttp) {
window.alert("\u8bf7\u4f7f\u7528IE\u6d4f\u89c8\u5668!");
}
return xmlHttp;
};

/**
* @see 处理ajax参数
* @param param 参数
* @return String
*/
ajax.getParam = function(param) {
var randomStr = "ajaxParamRandom=" + Math.random();
if (param == null || param == "") {
return randomStr;
}
var str = "";
if (typeof(param) == "object") {
for (var key in param) {
str += key + "=" + param[key] + "&";
}
str = (str.length > 0 ? str.substring(0, str.length - 1) : str);
} else {
str = param;
}
return str + "&" + randomStr;
};

/**
* @see ajax的回调函数
* @param callback 用户自定义回调函数
* @param url 请求的url
*/
ajax.doCallback = function(callback, url) {
if (ajaxCore.readyState == 4) {
if (ajaxCore.status == 200) {
if (callback == null) {
return;
}
var result = new String(ajaxCore.responseText);
if (null != result && result != "") {
if (result == "null") {
callback(null);
} else {
var backObject = null;
if (result == "true" || result == "false") {
backObject = eval(result);
} else if (!isNaN(result)) {
backObject = parseFloat(result);
} else if ((result.substring(0, 1) == "[" && result.substring(result.length - 1, result.length) == "]") ||
(result.substring(0, 1) == "{" && result.substring(result.length - 1, result.length) == "}")) {
backObject = eval("(" + result + ")");
} else {
backObject = result;
}
callback(backObject);
}
} else {
callback(result);
}
} else if (ajaxCore.status == 0 || ajaxCore.status == 12029) {
showProgress("0", "1");
alertWin("\u627e\u4e0d\u5230\u670d\u52a1\u5668\uff01", null, "");
} else if (ajaxCore.status == 404) {
showProgress("0", "1");
alertWin("\u627e\u4e0d\u5230\u8d44\u6e90: " + url, null, "");
}
}
};

/**
* @see ajax的post请求
* @param url 请求的url
* @param param 参数列表,可以是字符串或js对象或null
* @param callback 用户自定义回调函数
*/
ajax.post = function(url, param, callback) {
ajaxCore = ajax.getCore();
if (ajaxCore != null) {
ajaxCore.onreadystatechange = function() {
ajax.doCallback(callback, url);
};
ajaxCore.open("POST", url, true);
ajaxCore.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajaxCore.send(ajax.getParam(param));
}
};

/**
* @see ajax的get请求
* @param url 请求的url
* @param callback 用户自定义回调函数
*/
ajax.get = function(url, callback) {
ajaxCore = ajax.getCore();
if (ajaxCore != null) {
if (url.indexOf("?") != -1) {
url += "&ajaxParamRandom=" + Math.random();
} else {
url += "?ajaxParamRandom=" + Math.random();
}alert(url);
ajaxCore.onreadystatechange = function() {
ajax.doCallback(callback, url);
};
ajaxCore.open("GET", url, true);
ajaxCore.send(null);
}
};


调用:
ajax.post("/oc/iva.htm", {id:1, version:'1.2.6'}, function(json) {
alert(json.success);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值