RIFERIMENTO: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Metodo POST
Apporteremo alcune modifiche in modo che venga utilizzato il metodo POST quando si invia la richiesta ...
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);
Alcune intestazioni http devono essere impostate insieme a qualsiasi richiesta POST. Quindi li abbiamo impostati in queste righe ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Con le righe precedenti stiamo sostanzialmente dicendo che i dati inviati sono nel formato di un modulo di invio. Forniamo anche la lunghezza dei parametri che stiamo inviando.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Abbiamo impostato un gestore per l'evento di modifica "stato pronto". Questo è lo stesso gestore che abbiamo usato per il metodo GET. Puoi usare http.responseText qui: inseriscilo in un div usando innerHTML (AHAH), eval it (JSON) o qualsiasi altra cosa.
http.send(params);
Infine, inviamo i parametri con la richiesta. L'URL fornito viene caricato solo dopo che questa riga è stata chiamata. Nel metodo GET, il parametro sarà un valore null. Ma nel metodo POST, i dati da inviare verranno inviati come argomento della funzione di invio. La variabile params è stata dichiarata nella seconda riga come lorem=ipsum&name=binny
- quindi inviamo due parametri - "lorem" e "name" rispettivamente con i valori "ipsum" e "binny".