Solitamente 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à caricata 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.
Ciao ho visto che di tempo ne è passato da quando hai postato, ma spero che risponderai a questa mia domanda. Anche io ho sempre utilizzato il metodo GET, ma ora vorrei usare il POST. il mio problema è che i dati li devo inviare da un form al codice js, e a sua volta con ajax spedirli ad un altra pagina. Pertanto io non so i valori delle variabili perchè cambiano a seconda delle richieste di come vengono riempiti i campi…. spero di essere stato chiaro.
help me!