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 su MozillaZine (EN)
- XMLHttpRequest su XULPlanet (EN)
- nsIXMLHttpRequest su XULPlanet (EN)
- nsIJSXMLHttpRequest su XULPlanet (EN)
- Pagina LXR per nsIXMLHttpRequest.idl (EN)
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 unreadyState
(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 unaDOMString
, a seconda del valoreXMLHttpRequest.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 oppurenull
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- Restituisce un
Documento
contenente l'esito della chiamata (di tiponull
nei casi in cui la richiesta non abbia esito, non sia stata inviata, o non possa essere convertita in XML o HTML). Not available in workers. 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 diXMLHTTPRequest.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 onlyXMLHttpRequestUpload
, rappresenta un processo di upload.XMLHttpRequest.withCredentials
- Fornisce uno stato
Boolean
che indica quando //that indicates whether or not cross-siteAccess-Control
requests should be made using credentials such as cookies or authorization headers. -
Proprietà non-standard
XMLHttpRequest.channel
Read onlynsIChannel
. Definisce il canale utilizzato dall'oggetto quando effettua la chiamata.XMLHttpRequest.mozAnon
Read only- Restituisce un dato boolenao, true nel caso la chiamata venga inviata priva di cookie e/o dati di autenticazione nell'header.
XMLHttpRequest.mozSystem
Read 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.multipart
Obsolete 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'istanzaXMLHttpRequest
è 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 standardaddEventListener
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 disend()
. -
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à
BCD tables only load in the browser
Voci correlate
- MDN tutorials su XMLHttpRequest:
- HTML5 Rocks — New Tricks in XMLHttpRequest2
Chrome scope availability
— how to access XMLHttpRequest from JSM modules etc., which do not have access to DOM