REFERÊNCIA: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Método POST
Faremos algumas modificações para que o método POST seja usado ao enviar a solicitação ...
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);
Alguns cabeçalhos http devem ser configurados junto com qualquer solicitação POST. Então, nós os definimos nestas linhas ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Com as linhas acima, estamos basicamente dizendo que o envio de dados está no formato de um envio de formulário. Também fornecemos o comprimento dos parâmetros que enviamos.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Definimos um manipulador para o evento de mudança de 'estado pronto'. Este é o mesmo manipulador que usamos para o método GET. Você pode usar o http.responseText aqui - insira em um div usando innerHTML (AHAH), eval it (JSON) ou qualquer outra coisa.
http.send(params);
Por fim, enviamos os parâmetros com a solicitação. O url fornecido é carregado somente após esta linha ser chamada. No método GET, o parâmetro será um valor nulo. Já no método POST, os dados a serem enviados serão enviados como argumento da função send. A variável params foi declarada na segunda linha como lorem=ipsum&name=binny
- então enviamos dois parâmetros - 'lorem' e 'nome' com os valores 'ipsum' e 'binny' respectivamente.