Ajax e POST, una chiarificazione
Posted Luglio 20th, 2008 by slackoSolitamente le applicazioni sviluppate in Ajax utilizzano il metodo GET come visto ad esempio qui. In questi giorni sto sviluppando un piccolo client per Ping.fm, le cui API accettano solo richieste di tipo POST.
Vediamo quindi brevemente come comportarci in questo caso.
var http = new XMLHttpRequest(); var url = "get_data.php"; var params = "lorem=ipsum&name=binny"; http.open("POST", url, true);
con POST creiamo l’oggetto XMLHttpRequest e l’URL senza parametri.
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.setRequestHeader("Content-length", params.length); http.setRequestHeader("Connection", "close");
Settiamo poi gli headers http insieme alla richiesta in modo che i dati vengano siano interpretati come inviati da un form, e magari diamo anche la lunghezza dei parametri che invieremo.
Scriviamo un handler per l’evento ready state
http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { // fai qualcosa qui quando è generato l'evento } }
Infine inviamo i parametri insieme alla richiesta. L’url infatti verrà infatti verrà caricato solo in seguito all’esecuzione di questa riga. Con il metodo GET invece i parametri sono inviati, dalla funzione send, con valore null poichè contenuti direttamente nell’url.
http.send(params);
Spero di essere stato chiaro e diretto, se c’è qualcosa che non vi quadra chiedete pure nei commenti.
Ma avrà mica a che fare con?
Leave a Reply