Twitter status:

    Ajax e POST, una chiarificazione

    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à 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.

    Technorati Tags: ,,,

    Leave a Reply