这个函数处理的比较出色,放到JS里方便调用,bg_Ajax_gGetXmlHttpRequest这个返回浏览器的类型,而后一个函数主要是通过传递一些参数返回你需要的数据url是要提交到的网址PostData数据,至于CALLBACK是是否返回数据.
function
bg_Ajax_GetXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
if (window.Ajax_XMLHttpRequestProgID) {
return new ActiveXObject(window.Ajax_XMLHttpRequestProgID);
} else {
var progIDs = [ " Msxml2.XMLHTTP.5.0 " , " Msxml2.XMLHTTP.4.0 " , " MSXML2.XMLHTTP.3.0 " , " MSXML2.XMLHTTP " , " Microsoft.XMLHTTP " ];
for ( var i = 0 ; i < progIDs.length; ++ i) {
var progID = progIDs[i];
try {
var x = new ActiveXObject(progID);
window.Ajax_XMLHttpRequestProgID = progID;
return x;
} catch (e) {
}
}
}
}
return null ;
}
function bg_Ajax_Callback(url, postData, callback)
{
var x = bg_Ajax_GetXMLHttpRequest();
var result = null ;
if ( ! x) {
result = { " value " : null , " error " : " NOXMLHTTP " };
if (debugErrors) {
alert( " error: " + result.error);
}
if (clientCallBack) {
clientCallBack(result);
}
return result;
}
x.open( " POST " , url, callback ? true : false );
x.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded; charset=utf-8 " );
if (callback) {
x.onreadystatechange = function () {
var result = null ;
if (x.readyState != 4 ) {
return ;
}
callback(x.responseText)
}
}
x.send(postData);
}
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
if (window.Ajax_XMLHttpRequestProgID) {
return new ActiveXObject(window.Ajax_XMLHttpRequestProgID);
} else {
var progIDs = [ " Msxml2.XMLHTTP.5.0 " , " Msxml2.XMLHTTP.4.0 " , " MSXML2.XMLHTTP.3.0 " , " MSXML2.XMLHTTP " , " Microsoft.XMLHTTP " ];
for ( var i = 0 ; i < progIDs.length; ++ i) {
var progID = progIDs[i];
try {
var x = new ActiveXObject(progID);
window.Ajax_XMLHttpRequestProgID = progID;
return x;
} catch (e) {
}
}
}
}
return null ;
}
function bg_Ajax_Callback(url, postData, callback)
{
var x = bg_Ajax_GetXMLHttpRequest();
var result = null ;
if ( ! x) {
result = { " value " : null , " error " : " NOXMLHTTP " };
if (debugErrors) {
alert( " error: " + result.error);
}
if (clientCallBack) {
clientCallBack(result);
}
return result;
}
x.open( " POST " , url, callback ? true : false );
x.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded; charset=utf-8 " );
if (callback) {
x.onreadystatechange = function () {
var result = null ;
if (x.readyState != 4 ) {
return ;
}
callback(x.responseText)
}
}
x.send(postData);
}
本文转自
http://www.cnblogs.com/lucangel/archive/2006/07/19/454926.html