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.
Parametri di base
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 chiamataXMLHttpRequest, il suo stato ed eventuali errori notificati
Con 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.
Parametri opzionali e valori predefiniti
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 sufalseforza 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 ahtml,xmletext, accettascript(script JavaScript),jsonejsonp(oggetti JavaScript da server locali e remoti)global(true): se impostato sufalsegli eventi AJAX globali non verranno lanciati durante questa richiestaifModified(false): permette che la richiesta sia considerata conclusa con successo (eventisuccesseajaxSuccess) 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 dataTypescriptejsonptimeout: un numero indicante i millisecondi dopo i quali la richiesta viene considerata scadutatype("GET"): il tipo di richiesta da effettuare. AccettaGEToPOSTxhr: una funzione per personalizzare l'oggettoXMLHttpRequestnel caso non si volesse utilizzare ActiveXObject per Internet Explorer o XMLHttpRequest per gli altri browser
Conoscendo questi parametri sarà quindi 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.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: