参考: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);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
一些HTTP标头必须与任何POST请求一起设置。所以我们将它们设置在这些行中...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
通过以上几行,我们基本上说的是数据发送采用表单提交的格式。我们还给出了要发送的参数的长度。
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
我们为“就绪状态”更改事件设置了处理程序。这与我们用于GET方法的处理程序相同。您可以在此处使用http.responseText-使用innerHTML(AHAH),eval it(JSON)或其他任何内容插入div。
http.send(params);
最后,我们随请求一起发送参数。仅在调用此行后才加载给定的url。在GET方法中,参数将为空值。但是在POST方法中,要发送的数据将作为send函数的参数发送。params变量在第二行中声明为lorem=ipsum&name=binny
-,因此我们发送两个参数-“ lorem”和“ name”,其值分别为“ ipsum”和“ binny”。