参考:http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
POST方法
我们将做出一些修改,以便在发送请求时使用POST方法...
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
任何POST请求都必须设置一些HTTP标头。因此,我们在以下行中设置它们...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
使用上述代码行,我们基本上是在说发送的数据以表单提交的格式进行。我们还提供了发送参数的长度。
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
我们为“ready state”改变事件设置了一个处理程序。这是我们用于GET方法的相同处理程序。您可以在此处使用http.responseText-使用innerHTML(AHAH)将其插入到div中,eval it(JSON)或执行其他任何操作。
http.send(params)
最后,我们使用请求发送参数。只有在调用此行之后,给定的url才会被加载。在GET方法中,参数将是null值。但在POST方法中,要发送的数据将作为send函数的参数发送。params变量在第二行被声明为
lorem=ipsum&name=binny
——因此我们发送两个参数——'lorem'和'name',其值分别为'ipsum'和'binny'。