//将JSON对象解析为字符串,再替换相应符号
function JSONStringify(obj) {
return JSON.stringify(obj).replace(/"|{|}/g, "").replace(/:/g, "=")
.replace(/,/g, "&");
}
function getServerDataUseAjax(method, url, params) {
//开始初始化XMLHttpRequest对象
var http_request = false;
if (window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
//不同请求方式的请求过程不同
//开发过程中 80%的开发使用 get 方式请求
if (method.toLowerCase() == "get") {
//这里加上时间戳是为了解决低版本ie浏览器缓存问题
//另:这里额外调用了一个方法对传入的JSON对象进行了解析并字符串重组
url += "?" + JSONStringify(params) + "×tamp"
+ new Date().getTime();
//如果不是IE浏览器就执行
// if(navigator.userAgent.indexOf("MSIE")<=0){
// netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
// }
//注意这里是两次encodeURI()
http_request.open(method, encodeURI(encodeURI(url)), true);
// 处理返回信息的函数
http_request.onreadystatechange = function () {
if (http_request.readyState != 4) { // 判断对象状态
//id loading_inserHTML
// document.getElementById('MerchName').innerHTML="正在加载数据……";
//alert(4);
} else {
if (http_request.status == 200 || http_request.status == 0) { // 信息已经成功返回,开始处理信息
var strHTML = http_request.responseText;
//ok_innerHTML
//document.getElementById('MerchName').innerHTML=strHTML;
alert(strHTML);
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
};
//开始发送请求
http_request.send(null);
} else {
if (method.toLowerCase() == "post") {
if (method.toLowerCase() == "post") {
http_request.open(method, url, true);
http_request.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
// 处理返回信息的函数
http_request.onreadystatechange = function () {
if (http_request.readyState != 4) { // 判断对象状态
// document.getElementById('MerchName').innerHTML="正在加载数据……";
//alert(4);
} else {
if (http_request.status == 200 || http_request.status == 0) { // 信息已经成功返回,开始处理信息
var strHTML = http_request.responseText;
//document.getElementById('MerchName').innerHTML=strHTML;
alert(strHTML);
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
};
//开始发送请求
http_request.send(JSONStringify(params));
} else {
//http请求类别参数错误
window.alert("http请求类别参数错误..");
return false;
}
}
}
}
function test() {
//{name:'jack',age:88}
//注意这里给的参数对象是JSON对象格式
getServerDataUseAjax("get", "test", {
name : "天上人间",
age : 88
});
}
使用时需要 服务器端解码 URLDecoder.decode(request.getParameter("name"), "UTF-8")