XML/XMLHttpRequest
XMLHTTP è un set di API che possono essere usate da JavaScript, JScript, VBScript e altri linguaggi di scripting dei browser per trasferire XML o altri dati da e verso un web server tramite HTTP. Il più grande vantaggio di XMLHTTP è la possibilità di aggiornare dinamicamente una pagina web senza ricaricare l'intera pagina. Viene usato da alcuni siti web per velocizzare applicazioni dinamiche.
Oltre a XML, XMLHTTP può essere usato per prendere dati in altri formati, come JSON o anche testo semplice.
XMLHttpRequest (abbreviato: XHR) è un elemento fondamentale della tecnica di sviluppo web conosciuta con l'acronimo AJAX, ed è utilizzato in molti siti web per implementare applicazioni fruibili via browser dinamiche ed interattive. Una delle prime applicazioni ad utilizzare questo componente è stato il servizio di webmail di Google Gmail, a cui sono seguiti Google Suggest, Meebo, Virtual Earth di MSN e MapQuest.
Storia
modificaL'oggetto venne originariamente inventato da Microsoft, usato da Internet Explorer 5.0 come oggetto ActiveX, accessibile via JavaScript, VBScript, o qualsiasi altro linguaggio supportato dal browser. Gli sviluppatori di Mozilla implementarono poi una versione compatibile in Mozilla 1.0. Successivamente è stato supportato anche da Apple con Safari 1.2 e da Opera Software con Opera 8.0.
La maggior parte delle pagine ben progettate che usando XMLHTTP sono destinate a nascondere le implementazioni dell'oggetto XMLHTTP incapsulando la sua invocazione con un JavaScript.
Funzionalità simili sono incluse in DOM Livello 3 "Load and Save", già raccomandazione del W3C. A questo indirizzo è possibile trovare le informazioni di compatibilità con tutti i principali browser.
Al momento (2021) è implementato in maniera esauriente in tutti i principali browser (Safari, Chrome, FireFox, Opera).
Metodi
modificaMetodo | Descrizione |
---|---|
abort()
|
Cancella la richiesta in atto. |
getAllResponseHeaders()
|
Restituisce sotto forma di stringa tutti gli header HTTP ricevuti dal server |
getResponseHeader( nome_header )
|
Restituisce il valore dell'header HTTP specificato |
open( metodo, URL ) open( metodo, URL, async ) open( metodo, URL, async, userName ) open( metodo, URL, async, userName, password )
|
Specifica il metodo, l'URL e altri parametri opzionali per la richiesta.
Il parametro metodo può assumere valore di "GET", "POST", oppure "PUT" ("GET" è utilizzato quando si richiedono dati, mentre "POST" è utilizzato per inviare dati, specialmente se la lunghezza dei dati da trasmettere è maggiore di 512 byte). Il parametro URL può essere sia relativo che assoluto. Il parametro "async" specifica se la richiesta deve essere gestita in modo asincrono oppure no – "true" significa che lo script può proseguire l'elaborazione senza aspettare la risposta dopo il metodo send(), mentre "false" significa che lo script è costretto ad aspettare una risposta dal server prima di continuare. |
send( content )
|
Invia la richiesta |
setRequestHeader( chiave, valore)
|
Aggiunge la coppia chiave/valore alla richiesta da inviare. |
Attributi
modificaAttributo | Descrizione |
---|---|
onreadystatechange
|
Gestore dell'evento lanciato ad ogni cambiamento di stato. |
readyState
|
Restituisce lo stato corrente dell'istanza di XMLHttpRequest:
0 = non inizializzato, 1 = aperto, 2 = richiesta inviata, 3 = risposta in ricezione e 4 = risposta ricevuta. |
responseText
|
Restituisce la risposta del server in formato stringa |
responseXML
|
Restituisce la risposta del server come oggetto Document, che potrà essere esaminato secondo le specifiche DOM del W3C. |
status
|
Restituisce il codice HTTP restituito dal server (per esempio 404 per "Not Found" e 200 per "OK"). |
statusText
|
Restituisce lo status in forma di stringa descrittiva (per esempio. "Not Found" oppure "OK").
|