RÉFÉRENCE: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Méthode POST
Nous allons faire quelques modifications donc la méthode POST sera utilisée lors de l'envoi de la requête ...
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);
Certains en-têtes http doivent être définis avec toute requête POST. Alors nous les plaçons dans ces lignes ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Avec les lignes ci-dessus, nous disons essentiellement que les données envoyées sont dans le format d'une soumission de formulaire. Nous donnons également la longueur des paramètres que nous envoyons.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Nous définissons un gestionnaire pour l'événement de modification «état prêt». C'est le même gestionnaire que nous avons utilisé pour la méthode GET. Vous pouvez utiliser http.responseText ici - insérer dans un div en utilisant innerHTML (AHAH), eval it (JSON) ou autre chose.
http.send(params);
Enfin, nous envoyons les paramètres avec la requête. L'URL donnée n'est chargée qu'après l'appel de cette ligne. Dans la méthode GET, le paramètre sera une valeur nulle. Mais dans la méthode POST, les données à envoyer seront envoyées comme argument de la fonction d'envoi. La variable params a été déclarée dans la deuxième ligne comme lorem=ipsum&name=binny
- nous envoyons donc deux paramètres - «lorem» et «name» avec les valeurs «ipsum» et «binny» respectivement.