REFERENSI: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Metode POST
Kami akan membuat beberapa modifikasi sehingga metode POST akan digunakan saat mengirim permintaan ...
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);
Beberapa header http harus disetel bersama dengan permintaan POST apa pun. Jadi kami mengaturnya di baris ini ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Dengan baris di atas kita pada dasarnya mengatakan bahwa pengiriman data dalam format pengiriman formulir. Kami juga memberikan panjang parameter yang kami kirim.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Kami menetapkan penangan untuk peristiwa perubahan 'status siap'. Ini adalah penangan yang sama yang kami gunakan untuk metode GET. Anda dapat menggunakan http.responseText di sini - masukkan ke dalam div menggunakan innerHTML (AHAH), eval it (JSON), atau apa pun.
http.send(params);
Akhirnya, kami mengirim parameter dengan permintaan tersebut. Url yang diberikan dimuat hanya setelah baris ini dipanggil. Dalam metode GET, parameter akan menjadi nilai null. Namun pada metode POST, data yang akan dikirim akan dikirim sebagai argumen fungsi kirim. Variabel params dideklarasikan di baris kedua sebagai lorem=ipsum&name=binny
- jadi kami mengirim dua parameter - 'lorem' dan 'name' dengan nilai 'ipsum' dan 'binny' masing-masing.