ДОВІДКА: 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 - вставити в div, використовуючи innerHTML (AHAH), eval (JSON) або будь-що інше.
http.send(params);
Нарешті, ми надсилаємо параметри із запитом. Дана URL-адреса завантажується лише після виклику цього рядка. У методі GET параметром буде нульове значення. Але в методі POST дані, що надсилаються, будуть надсилатися як аргумент функції send. Змінна params була оголошена у другому рядку як lorem=ipsum&name=binny
- тому ми надсилаємо два параметри - 'lorem' та 'name' зі значеннями 'ipsum' та 'binny' відповідно.