La funzione principale per inviare richieste AJAX è il metodo statico $.ajax(). Dati
i molti aspetti della chiamata che possono essere personalizzati, la funzione accetta un'unico oggetto JavaScript con i parametri di base ed altri necessari per sovrascrivere i valori di default.
url: l'indirizzo al quale inviare la chiamatasuccess: funzione da lanciare se la richiesta ha successo. Accetta come argomenti i dati restituiti dal server (interpretati di default come html o xml) e lo stato della chiamataerror: funzione lanciata in caso di errore. Accetta un riferimento alla chiamata XMLHttpRequest, il suo stato ed eventuali errori notificatiCon questi tre parametri è possibile impostare una prima semplice chiamata AJAX di esempio:
$.ajax({
url : "mioserver.html",
success : function (data,stato) {
$("#risultati").html(data);
$("#statoChiamata").text(stato);
},
error : function (richiesta,stato,errori) {
alert("E' evvenuto un errore. Il stato della chiamata: "+stato);
}
});
Nell'esempio precedente, se la chiamata ha successo i dati verranno inseriti all'interno di specifici elementi DOM, altrimenti verrà mostrato un messaggio di errore.
Oltre alla possibilità di impostare come opzione di $.ajax() tutti gli eventi locali visti in precedenza, è anche possibile personalizzare ulteriormente la chiamata AJAX relativamente ai dati inviati, la modalità di invio e il tipo di valori restituiti (tra parentesi i valori predefiniti):
async (true): definisce se la chiamata deve essere asincrona o sincrona (nel
cui caso bloccherà la pagina fino alla fine della chiamata)cache (true): se impostato su false forza la il browser a ricaricare ogni volta i dati del server anche se non sono cambiaticontentType ("application/x-www-form-urlencoded"): il tipo di contenuto inviato al serverdata: un oggetto {chiave : valore, chiave2 : valore} oppure una stringa "chiave=valore&chiave2=valore2" contenente dei dati da inviare al serverdataType ("html" o "xml"): il tipo di dati restituiti dal server. Oltre a html, xml e text, accetta script (script JavaScript), json e jsonp (oggetti JavaScript da server locali e remoti)global (true): se impostato su false gli eventi AJAX globali non verranno lanciati durante questa richiestaifModified (false): permette che la richiesta sia considerata conclusa con successo (eventi success e ajaxSuccess) solo se i dati restituiti sono diversi da quelli ricavati da una precedente chiamata dello stesso tipojsonp: sovrascrive il valore callback in una strigna di richesta jsonp. Così con {jsonp:'onJsonPLoad'} verrà aggiunta alla stringa passata al server "onJsonPLoad=?"username: nome utente se richiesto dal serverpassword: password se richiesta dal serverprocessData (true): se impostato su false i dati inviati al server non saranno pre-processati ma inviati direttamentescriptCharset: forza il charset utilizzato nella richiesta AJAX per i dataType script e jsonptimeout: un numero indicante i millisecondi dopo i quali la richiesta viene considerata scadutatype ("GET"): il tipo di richiesta da effettuare. Accetta GET o POSTxhr: una funzione per personalizzare l'oggetto XMLHttpRequest nel caso non si volesse utilizzare ActiveXObject per Internet Explorer o XMLHttpRequest per gli altri browserConoscendo questi parametri sarà quandi possibile richiedere dei dati in formato JSON da inserire in una tabella HTML (esempio):
$.ajax({
url : 'dati.php',
data : 'primariga=0&ultimariga=10', //le prime 10 righe
dataType : 'json', //restituisce un oggetto JSON
complete: function (righe,stato) {
for (i=0; i < righe.length; i++) {
var riga = righe[i];
$("<tr/>")
.append("<td>"+riga.colonna1+"</td><td>"+riga.colonna2+"</td>")
.appendTo("#tabella");
}
}
});
Ecco questo script in azione.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |