--- title: XMLHttpRequest slug: Web/API/XMLHttpRequest tags: - AJAX API HTTP XMLHttpRequest translation_of: Web/API/XMLHttpRequest ---
{{outdated()}}

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:

{{APIRef("XMLHttpRequest")}}

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

{{domxref("XMLHttpRequest.XMLHttpRequest", "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 {{domxref("XMLHttpRequestEventTarget")}} e di {{domxref("EventTarget")}}:

{{domxref("XMLHttpRequest.onreadystatechange")}}
E' un {{domxref("EventHandler")}} chiamato al mutare di un readyState (stato di un evento).
{{domxref("XMLHttpRequest.readyState")}} {{readonlyinline}}
Restituisce un unsigned short, rappresentante lo stato della richiesta.
{{domxref("XMLHttpRequest.response")}} {{readonlyinline}}
Restituisce dati di tipo {{domxref("ArrayBuffer")}}, {{domxref("Blob")}}, {{domxref("Document")}},  oggetti JavaScript, od una {{domxref("DOMString")}}, a seconda del valore {{domxref("XMLHttpRequest.responseType")}}. la quale descrive l'entità del corpo della richiesta.
{{domxref("XMLHttpRequest.responseText")}} {{readonlyinline}}
Restituisce una {{domxref("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.
{{domxref("XMLHttpRequest.responseType")}}
E' un valore enumerato il quale definisce il tipo del risultato della chiamata.
{{domxref("XMLHttpRequest.responseURL")}} {{readonlyinline}}
Restituisce l'URL serializzato dell'esito della chiamata (in una stringa vuota se l'URL è vacante).
{{domxref("XMLHttpRequest.responseXML")}} {{readonlyinline}}
Restituisce un {{domxref("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). Not available in workers.
{{domxref("XMLHttpRequest.status")}} {{readonlyinline}}
Restituisce un dato di tipo unsigned short rappresentante lo stato dell'esito della chiamata.
{{domxref("XMLHttpRequest.statusText")}} {{readonlyinline}}
Restituisce una {{domxref("DOMString")}} contentente l'esito (in forma di stringa) fornita dal server HTTP. A differenza di {{domxref("XMLHTTPRequest.status")}}, include l'intero testo del messaggio in risposta (es. "200 OK").
{{domxref("XMLHttpRequest.timeout")}}
Restituisce un unsigned long rappresentante il numero (espresso in millisecondi) rimanente alla chiamata prima che questa venga automaticamente soppressa.
{{domxref("XMLHttpRequestEventTarget.ontimeout")}}
E' un {{domxref("EventHandler")}} (gestore di eventi) che può occorrere quando una richiesta termina in timeout. {{gecko_minversion_inline("12.0")}}
{{domxref("XMLHttpRequest.upload")}} {{readonlyinline}}
{{domxref("XMLHttpRequestUpload")}}, rappresenta un processo di upload.
{{domxref("XMLHttpRequest.withCredentials")}}
Fornisce uno stato {{jsxref("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

{{domxref("XMLHttpRequest.channel")}}{{ReadOnlyInline}}
{{Interface("nsIChannel")}}. Definisce il canale utilizzato dall'oggetto quando effettua la chiamata.
{{domxref("XMLHttpRequest.mozAnon")}}{{ReadOnlyInline}}
Restituisce un dato boolenao, true nel caso la chiamata venga inviata priva di cookie e/o dati di autenticazione nell'header.
{{domxref("XMLHttpRequest.mozSystem")}}{{ReadOnlyInline}}
Restituisce un dato booleano true nel caso in cui gli stessi parametri di origine non siano comparati dalla chiamata.
{{domxref("XMLHttpRequest.mozBackgroundRequest")}}
Restituisce un valore booleano indicante se l'oggetto rappresenta una chiamata attiva latente.
{{domxref("XMLHttpRequest.mozResponseArrayBuffer")}}{{gecko_minversion_inline("2.0")}} {{obsolete_inline("6")}} {{ReadOnlyInline}}
E' un ArrayBuffer. contentente il risultato della chiamata in forma di un array JavaScript tipizzato.
{{domxref("XMLHttpRequest.multipart")}}{{obsolete_inline("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

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

Metodi non-standard

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

Specifiche

Specifiche Stato Commenti
{{SpecName('XMLHttpRequest')}} {{Spec2('XMLHttpRequest')}} Live standard, ultima versione

Compatibilità

 

{{Compat("api.XMLHttpRequest")}}

Voci correlate