MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Attenzione: The content of this article may be out of date.

Questo oggetto è il cuore di AJAX: è infatti lo strumento che JavaScript utilizza per accedere a un documento XML.

Il W3C ha pubblicato una bozza di standard per questo oggetto il 5 aprile 2006.

Seguono alcuni link:

XMLHttpRequest è una API (interfaccia alla progammazione) la quale fornisce al client le funzionalità di trasferire bidirezionalmente dati tra esso ed il server in maniera sincrona od asincrona senza che il browser richieda al server una porzione di dati senza necessariamente effettuar l'aggiornamento della pagina.

Nonostante il nome dato, XMLHttpRequest, originariamente sviluppato da Microsoft e successivamente adottato dalle altre case di sviluppo browser attraverso il suo standard, supporta protocolli HTTP (inclusi quelli di tipo file ed ftp) oltre che l'XML.

Struttura di controllo

 

XMLHttpRequest()
La struttura di controllo viene inizializzata con la funzione XMLHttpRequest() e necessita la sua chiamata prima di ogni altro suo metodo.

Proprietà

XMLHttpRequest eredita le proprietà di XMLHttpRequestEventTarget e di EventTarget:

XMLHttpRequest.onreadystatechange
E' un EventHandler chiamato al mutare di un readyState (stato di un evento).
XMLHttpRequest.readyState Read only
Restituisce un unsigned short, rappresentante lo stato della richiesta.
XMLHttpRequest.response Read only
Restituisce dati di tipo ArrayBuffer, Blob, Document,  oggetti JavaScript, od una DOMString, a seconda del valore XMLHttpRequest.responseType. la quale descrive l'entità del corpo della richiesta.
XMLHttpRequest.responseText Read only
Restituisce una DOMString la quale contiene l'esito della chiamata sotto forma testuale oppure null se la richiesta non ha riscontri o nel caso non sia stata ancora operata.
XMLHttpRequest.responseType
E' un valore enumerato il quale definisce il tipo del risultato della chiamata.
XMLHttpRequest.responseURL Read only
Restituisce l'URL serializzato dell'esito della chiamata (in una stringa vuota se l'URL è vacante).
XMLHttpRequest.responseXML Read only Not available to workers
Restituisce un Documento contenente l'esito della chiamata (di tipo null nei casi in cui la richiesta non abbia esito, non sia stata inviata, o non possa essere convertita in XML o HTML).
XMLHttpRequest.status Read only
Restituisce un dato di tipo unsigned short rappresentante lo stato dell'esito della chiamata.
XMLHttpRequest.statusText Read only
Restituisce una DOMString contentente l'esito (in forma di stringa) fornita dal server HTTP. A differenza di XMLHTTPRequest.status, include l'intero testo del messaggio in risposta (es. "200 OK").
XMLHttpRequest.timeout
Restituisce un unsigned long rappresentante il numero (espresso in millisecondi) rimanente alla chiamata prima che questa venga automaticamente soppressa.
XMLHttpRequestEventTarget.ontimeout
E' un EventHandler (gestore di eventi) che può occorrere quando una richiesta termina in timeout.
XMLHttpRequest.upload Read only
XMLHttpRequestUpload, rappresenta un processo di upload.
XMLHttpRequest.withCredentials
Fornisce uno stato Boolean che indica quando //that indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies or authorization headers.
 

Proprietà non-standard

XMLHttpRequest.channelRead only
nsIChannel. Definisce il canale utilizzato dall'oggetto quando effettua la chiamata.
XMLHttpRequest.mozAnonRead only
Restituisce un dato boolenao, true nel caso la chiamata venga inviata priva di cookie e/o dati di autenticazione nell'header.
XMLHttpRequest.mozSystemRead only
Restituisce un dato booleano true nel caso in cui gli stessi parametri di origine non siano comparati dalla chiamata.
XMLHttpRequest.mozBackgroundRequest
Restituisce un valore booleano indicante se l'oggetto rappresenta una chiamata attiva latente.
XMLHttpRequest.mozResponseArrayBuffer Obsolete since Gecko 6 Read only
E' un ArrayBuffer. contentente il risultato della chiamata in forma di un array JavaScript tipizzato.
XMLHttpRequest.multipartObsolete since Gecko 22
Questa funzione Gecko-only , booleana, è stata rimossa a partire da Firefox/Gecko 22. In sostituzione si veda Server-Sent Events, Web Sockets, o responseText per il monitoraggio dei progressi degli eventi.

Gestori degli eventi

onreadystatechange come proprietà dell'istanza XMLHttpRequest è supportata in ogni browser.

In virtù di ciò, un numero sempre maggiore di trigger degli eventi è stata implementata in vari browser (onload, onerror, onprogress, etc.). Ognuno di questi è supportato da Firefox, in particolare si veda nsIXMLHttpRequestEventTarget e Using XMLHttpRequest.

Molte versioni recenti di browser, Firefox e derivate incluse, supportano la ricezione degli eventi XMLHttpRequest mediante le API standard addEventListener in aggiunta alle proprietà aggiuntive applicate ai metodi dei gestori degli eventi.

Metodi

     XMLHttpRequest.abort()
 
Interrompe la chiamata se è stata già inviata.
XMLHttpRequest.getAllResponseHeaders()
Restituisce tutti gli header in risposta, separati da CRLF, sottoforma di stringa o null se non viene ricevuto nessun risultato.
XMLHttpRequest.getResponseHeader()
Restituisce la stringa contenente il testo dell'header specifico o null se anche il risultato non è stato ricevuto o l'header non esiste.
XMLHttpRequest.open()
Inizializza una chiamata. Questa funzione è derivante da codice Javascript; per inizializzare una chiamata dal codice nativo si veda openRequest().
XMLHttpRequest.overrideMimeType()
Revoca il MIME type inviato dal server.
XMLHttpRequest.send()
Invia la richiesta. Se la richiesta è asincrona (come è di default) questo metodo risponde non appena terminato l'invio della richiesta attiva.
XMLHttpRequest.setRequestHeader()
Stabilisce il valore di un header HTTP di richiesta. E' preferibile chiamare setRequestHeader()dopo open(), ma prima di send().

Metodi non-standard

XMLHttpRequest.init()
Inizializza l'oggetto da usare in codice C++.
Attenzione: Questo metodo non deve essere eseguito da JavaScript.
XMLHttpRequest.openRequest()
Inizializza una richiesta. Questo metodo è derivante da codice nativo; per inizializzare una richiesta da JavaScript si utilizzi invece open().
XMLHttpRequest.sendAsBinary()
Una variante del metodo send() il quale invia dati binari.

Specifiche

Specifiche Stato Commenti
XMLHttpRequest Living Standard Live standard, ultima versione

Compatibilità

Funzionalità Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (XHR1) 1 1.0 (1.7 or earlier) 7 (Yes) 1.2
send(ArrayBuffer) 9 9.0 (9.0) 10 11.60 ?
send(ArrayBufferView) 22 20.0 (20.0) ? ? ?
send(Blob) 7 3.6 (1.9.2) 10 12 ?
send(FormData) 6 4.0 (2.0) 10 12 ?
sendAsBinary(DOMString) No support[1] 2.0 (1.8.1) No support No support No support
response 10 6.0 (6.0) 10 11.60 (Yes)
responseType = 'arraybuffer' 10 6.0 (6.0) 10 11.60 (Yes)
responseType = 'blob' 19 6.0 (6.0) 10 12 (Yes)
responseType = 'document' 18 11.0 (11.0) 10 No support 6.1
responseType = 'json' 31 10.0 (10.0) No support 12[2]
No support 16
17
(Yes)
Progress Events 7 3.5 (1.9.1) 10 12 (Yes)
withCredentials 3 3.5 (1.9.1) 10 12 4
timeout 29.0 12.0 (12.0) 8 12
16
(Yes)
responseType = 'moz-blob' No support 12.0 (12.0) No support No support No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? 1.0 (Yes) ? ? ?
send(ArrayBuffer) ? ? ? ? ?
send(ArrayBufferView) ? ? ? ? ?
send(Blob) ? ? ? ? ?
send(FormData) ? ? ? ? ?
sendAsBinary(DOMString) ? ? ? ? ?
response ? ? ? ? ?
responseType = 'arraybuffer' ? ? ? ? ?
responseType = 'blob' ? ? ? ? ?
responseType = 'document' ? ? ? ? ?
responseType = 'json' ? ? ? ? ?
Progress Events ? ? ? ? ?
withCredentials ? ? ? ? ?
timeout ? ? ? ? ?
responseType = 'moz-blob' ? ? ? ? ?

 

Voci correlate

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: ivorykeys, teoli, ethertank, Federico
 Ultima modifica di: ivorykeys,