第一种,基本方法。这种方法比较基础,而且可以根据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: processResponse,asynchronous:true});
}
第三种,是jquery的方法,因此要先引入jquery.js。这种方法封装得比较厉害,只留了一个omCompleted方法出来。不过 jquery也留了底层方法,可以通过使用底层方法来获取更大的编程灵活性。不知道prototype有没有类似的方法。
jQuery.post(action, params, onCompleted, "text");