ССЫЛКА: 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 данные для отправки будут отправлены в качестве аргумента функции отправки. Переменная params была объявлена во второй строке как lorem=ipsum&name=binny
- поэтому мы отправляем два параметра - lorem и name со значениями ipsum и binny соответственно.