REFERENZ: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
POST-Methode
Wir werden einige Änderungen vornehmen, damit beim Senden der Anfrage die POST-Methode verwendet wird ...
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);
Einige http-Header müssen zusammen mit jeder POST-Anforderung festgelegt werden. Also setzen wir sie in diese Zeilen ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Mit den obigen Zeilen sagen wir im Grunde, dass die gesendeten Daten im Format einer Formularübermittlung vorliegen. Wir geben auch die Länge der Parameter an, die wir senden.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Wir haben einen Handler für das Änderungsereignis "Bereit" festgelegt. Dies ist der gleiche Handler, den wir für die GET-Methode verwendet haben. Sie können den http.responseText hier verwenden - mit innerHTML (AHAH) in ein div einfügen, es auswerten (JSON) oder irgendetwas anderes.
http.send(params);
Schließlich senden wir die Parameter mit der Anfrage. Die angegebene URL wird erst geladen, nachdem diese Zeile aufgerufen wurde. Bei der GET-Methode ist der Parameter ein Nullwert. Bei der POST-Methode werden die zu sendenden Daten jedoch als Argument der Sendefunktion gesendet. Die Variable params wurde in der zweiten Zeile als lorem=ipsum&name=binny
- also senden wir zwei Parameter - 'lorem' und 'name' mit den Werten 'ipsum' bzw. 'binny' deklariert.