第一种,基本方法。这种方法比较基础,而且可以根据readyState和status的不同状态,写不同的处理代码。算是比较完备的吧。

var xmlHttp;
if (window.ActiveXObject) {
   xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
   if (window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
   }
}

//设定属性
xmlHttp.onreadystatechange = getPreRespons;
xmlHttp.open("POST", url, true);
//post方法必须设置这个请求头
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //发送请求
xmlHttp.send(params);

//获得返回数据
function getPreRespons() {
//alert(xmlHttp.readyState);
if (xmlHttp.readyState == 4) {
//alert(xmlHttp.status)
   if (xmlHttp.status == 200) {
    parsePrem();//这个方法的代码略去,自己写就行
   }
}
}

第二种,这种方法要先引入prototype.js。这种方法算是半封装,因为他封装了基本的一些代码,如设定属性等;但是将onComplte等 方法暴露了出来。更具体的方面,我另写有文章。

var myAjax = new Ajax.Request(
    url,
    {method:'post',parameters:params,onComplete: proce***esponse,asynchronous:true});
}

第三种,是jquery的方法,因此要先引入jquery.js。这种方法封装得比较厉害,只留了一个omCompleted方法出来。不过 jquery也留了底层方法,可以通过使用底层方法来获取更大的编程灵活性。不知道prototype有没有类似的方法。

jQuery.post(action, params, onCompleted, "text");