1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
---
title: XMLHttpRequest
slug: Web/API/XMLHttpRequest
tags:
- AJAX API HTTP XMLHttpRequest
translation_of: Web/API/XMLHttpRequest
---
<div>{{outdated()}}</div>
<p>Questo oggetto è il cuore di <a href="/it/docs/AJAX">AJAX</a>: è infatti lo strumento che <a href="/it/docs/JavaScript">JavaScript</a> utilizza per accedere a un documento <a href="/it/docs/XML">XML</a>.</p>
<p>Il W3C ha pubblicato una <a class="external" href="http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/">bozza</a> di standard per questo oggetto il 5 aprile 2006.</p>
<p>Seguono alcuni link:</p>
<ul>
<li><a href="/it/docs/Cambiamenti_di_XMLHttpRequest_in_Gecko1.8">Cambiamenti di XMLHttpRequest in Gecko1.8</a></li>
<li><a href="/it/docs/Compatibilit%c3%a0_di_AJAX">Compatibilità di AJAX</a></li>
</ul>
<ul>
<li><a class="external" href="http://kb.mozillazine.org/XMLHttpRequest">XMLHttpRequest su MozillaZine</a> (EN)</li>
<li><a class="external" href="http://xulplanet.com/references/objref/XMLHttpRequest.html">XMLHttpRequest su XULPlanet</a> (EN)</li>
<li><a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIXMLHttpRequest.html">nsIXMLHttpRequest su XULPlanet</a> (EN)</li>
<li><a class="external" href="http://www.xulplanet.com/references/xpcomref/ifaces/nsIJSXMLHttpRequest.html">nsIJSXMLHttpRequest su XULPlanet</a> (EN)</li>
<li><a class="external" href="http://lxr.mozilla.org/seamonkey/source/extensions/xmlextras/base/public/nsIXMLHttpRequest.idl">Pagina LXR per nsIXMLHttpRequest.idl</a> (EN)</li>
</ul>
<div>{{APIRef("XMLHttpRequest")}}</div>
<p><span class="seoSummary"><code>XMLHttpRequest</code></span> è 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.</p>
<p>Nonostante il nome dato, XMLHttpRequest, originariamente sviluppato da Microsoft e successivamente adottato dalle altre case di sviluppo browser attraverso il suo <a href="https://xhr.spec.whatwg.org/">standard</a>, supporta protocolli <a href="https://it.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a> (inclusi quelli di tipo <code>file ed ftp</code>) oltre che l'XML.</p>
<h2 id="Struttura_di_controllo">Struttura di controllo</h2>
<dl>
<dt>{{domxref("XMLHttpRequest.XMLHttpRequest", "XMLHttpRequest()")}}</dt>
<dd>La struttura di controllo viene inizializzata con la funzione XMLHttpRequest() e necessita la sua chiamata prima di ogni altro suo metodo.</dd>
</dl>
<h2 id="Proprietà">Proprietà</h2>
<p><em>XMLHttpRequest eredita le proprietà di {{domxref("XMLHttpRequestEventTarget")}} e di {{domxref("EventTarget")}}:</em></p>
<dl>
<dt id="xmlhttprequest-onreadystatechange">{{domxref("XMLHttpRequest.onreadystatechange")}}</dt>
<dd>E' un {{domxref("EventHandler")}} chiamato al mutare di un <code>readyState</code> (stato di un evento).</dd>
<dt id="xmlhttprequest-readystate">{{domxref("XMLHttpRequest.readyState")}} {{readonlyinline}}</dt>
<dd>Restituisce un <code>unsigned short</code>, rappresentante lo stato della richiesta.</dd>
<dt>{{domxref("XMLHttpRequest.response")}} {{readonlyinline}}</dt>
<dd>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.</dd>
<dt id="xmlhttprequest-responsetext">{{domxref("XMLHttpRequest.responseText")}} {{readonlyinline}}</dt>
<dd>Restituisce una {{domxref("DOMString")}} la quale contiene l'esito della chiamata sotto forma testuale oppure <code>null</code> se la richiesta non ha riscontri o nel caso non sia stata ancora operata.</dd>
<dt id="xmlhttprequest-responsetype">{{domxref("XMLHttpRequest.responseType")}}</dt>
<dd>E' un valore enumerato il quale definisce il tipo del risultato della chiamata.</dd>
<dt id="xmlhttprequest-responsexml">{{domxref("XMLHttpRequest.responseURL")}} {{readonlyinline}}</dt>
<dd>Restituisce l'URL serializzato dell'esito della chiamata (in una stringa vuota se l'URL è vacante).</dd>
<dt id="xmlhttprequest-responsexml">{{domxref("XMLHttpRequest.responseXML")}} {{readonlyinline}}</dt>
<dd>Restituisce un {{domxref("Documento")}} contenente l'esito della chiamata (di tipo <code>null</code> 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.</dd>
<dt id="xmlhttprequest-status">{{domxref("XMLHttpRequest.status")}} {{readonlyinline}}</dt>
<dd>Restituisce un dato di tipo <code>unsigned short</code> rappresentante lo stato dell'esito della chiamata.</dd>
<dt id="xmlhttprequest-statustext">{{domxref("XMLHttpRequest.statusText")}} {{readonlyinline}}</dt>
<dd>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. "<code>200 OK</code>").</dd>
<dt id="xmlhttprequest-timeout">{{domxref("XMLHttpRequest.timeout")}}</dt>
<dd>Restituisce un <code>unsigned long</code> rappresentante il numero (espresso in millisecondi) rimanente alla chiamata prima che questa venga automaticamente soppressa.</dd>
<dt id="xmlhttprequesteventtarget-ontimeout">{{domxref("XMLHttpRequestEventTarget.ontimeout")}}</dt>
<dd>E' un {{domxref("EventHandler")}} (gestore di eventi) che può occorrere quando una richiesta termina in timeout. {{gecko_minversion_inline("12.0")}}</dd>
<dt id="xmlhttprequest-upload">{{domxref("XMLHttpRequest.upload")}} {{readonlyinline}}</dt>
<dd>{{domxref("XMLHttpRequestUpload")}}, rappresenta un processo di upload.</dd>
<dt id="xmlhttprequest-withcredentials">{{domxref("XMLHttpRequest.withCredentials")}}</dt>
<dd>Fornisce uno stato {{jsxref("Boolean")}} che indica quando //that indicates whether or not cross-site <code>Access-Control</code> requests should be made using credentials such as cookies or authorization headers.</dd>
<dd> </dd>
<dd>
<h3 id="Proprietà_non-standard">Proprietà non-standard</h3>
</dd>
<dt>{{domxref("XMLHttpRequest.channel")}}{{ReadOnlyInline}}</dt>
<dd>{{Interface("nsIChannel")}}. Definisce il canale utilizzato dall'oggetto quando effettua la chiamata.</dd>
<dt>{{domxref("XMLHttpRequest.mozAnon")}}{{ReadOnlyInline}}</dt>
<dd>Restituisce un dato boolenao, true nel caso la chiamata venga inviata priva di cookie e/o dati di autenticazione nell'header.</dd>
<dt>{{domxref("XMLHttpRequest.mozSystem")}}{{ReadOnlyInline}}</dt>
<dd>Restituisce un dato booleano true nel caso in cui gli stessi parametri di origine non siano comparati dalla chiamata.</dd>
<dt>{{domxref("XMLHttpRequest.mozBackgroundRequest")}}</dt>
<dd>Restituisce un valore booleano indicante se l'oggetto rappresenta una chiamata attiva latente.</dd>
<dt>{{domxref("XMLHttpRequest.mozResponseArrayBuffer")}}{{gecko_minversion_inline("2.0")}} {{obsolete_inline("6")}} {{ReadOnlyInline}}</dt>
<dd>E' un <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer"><code>ArrayBuffer</code></a>. contentente il risultato della chiamata in forma di un array JavaScript tipizzato.</dd>
<dt>{{domxref("XMLHttpRequest.multipart")}}{{obsolete_inline("22")}}</dt>
<dd><strong>Questa funzione Gecko-only , booleana, è stata rimossa a partire da Firefox/Gecko 22.</strong> In sostituzione si veda <a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events">Server-Sent Events</a>, <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API">Web Sockets</a>, o <code>responseText</code> per il monitoraggio dei progressi degli eventi.</dd>
<dd>
<h3 id="Gestori_degli_eventi">Gestori degli eventi</h3>
<p><code>onreadystatechange</code> come proprietà dell'istanza <code>XMLHttpRequest</code> è supportata in ogni browser.</p>
<p>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 <code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIXMLHttpRequestEventTarget" title="">nsIXMLHttpRequestEventTarget</a></code> e <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">Using XMLHttpRequest</a>.</p>
<p>Molte versioni recenti di browser, Firefox e derivate incluse, supportano la ricezione degli eventi <code>XMLHttpRequest</code> mediante le API standard <code><a href="https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener">addEventListener</a></code> in aggiunta alle proprietà aggiuntive applicate ai metodi dei gestori degli eventi.</p>
<h2 id="Metodi">Metodi</h2>
</dd>
<dt> {{domxref("XMLHttpRequest.abort()")}}</dt>
<dd> </dd>
<dd>Interrompe la chiamata se è stata già inviata.</dd>
<dt>{{domxref("XMLHttpRequest.getAllResponseHeaders()")}}</dt>
<dd>Restituisce tutti gli header in risposta, separati da <a href="https://developer.mozilla.org/en-US/docs/Glossary/CRLF">CRLF</a>, sottoforma di stringa o <code>null</code> se non viene ricevuto nessun risultato.</dd>
<dt>{{domxref("XMLHttpRequest.getResponseHeader()")}}</dt>
<dd>Restituisce la stringa contenente il testo dell'header specifico o <code>null</code> se anche il risultato non è stato ricevuto o l'header non esiste.</dd>
<dt>{{domxref("XMLHttpRequest.open()")}}</dt>
<dd>Inizializza una chiamata. Questa funzione è derivante da codice Javascript; per inizializzare una chiamata dal codice nativo si veda <a class="internal" href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIXMLHttpRequest#openRequest%28%29"><code>openRequest()</code></a>.</dd>
<dt>{{domxref("XMLHttpRequest.overrideMimeType()")}}</dt>
<dd>Revoca il MIME type inviato dal server.</dd>
<dt>{{domxref("XMLHttpRequest.send()")}}</dt>
<dd>Invia la richiesta. Se la richiesta è asincrona (come è di default) questo metodo risponde non appena terminato l'invio della richiesta attiva.</dd>
<dt>{{domxref("XMLHttpRequest.setRequestHeader()")}}</dt>
<dd>Stabilisce il valore di un header HTTP di richiesta. E' preferibile chiamare <code>setRequestHeader()dopo</code> <a href="https://developer.mozilla.org/it/docs/Web/API/XMLHttpRequest$edit#open"><code>open()</code></a>, ma prima di <code>send()</code>.</dd>
<dd>
<h3 id="Metodi_non-standard">Metodi non-standard</h3>
</dd>
<dt>{{domxref("XMLHttpRequest.init()")}}</dt>
<dd>Inizializza l'oggetto da usare in codice C++.</dd>
<dd>
<div class="warning"><strong>Attenzione:</strong> Questo metodo <em>non</em> deve essere eseguito da JavaScript.</div>
</dd>
<dt>{{domxref("XMLHttpRequest.openRequest()")}}</dt>
<dd>Inizializza una richiesta. Questo metodo è derivante da codice nativo; per inizializzare una richiesta da JavaScript si utilizzi invece <a class="internal" href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIXMLHttpRequest#open%28%29"><code>open()</code></a>.</dd>
<dt>{{domxref("XMLHttpRequest.sendAsBinary()")}}{{deprecated_inline()}}</dt>
<dd>Una variante del metodo <code>send()</code> il quale invia dati binari.</dd>
<dt>
<h2 id="Specifiche">Specifiche</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specifiche</th>
<th scope="col">Stato</th>
<th scope="col">Commenti</th>
</tr>
<tr>
<td>{{SpecName('XMLHttpRequest')}}</td>
<td>{{Spec2('XMLHttpRequest')}}</td>
<td>Live standard, ultima versione</td>
</tr>
</tbody>
</table>
</dt>
</dl>
<h2 id="Compatibilità">Compatibilità</h2>
<p> </p>
<div>{{Compat("api.XMLHttpRequest")}}</div>
<h2 id="Voci_correlate">Voci correlate</h2>
<ul>
<li>MDN tutorials su XMLHttpRequest:
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started">AJAX — Getting Started</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">Using XMLHttpRequest</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest">HTML in XMLHttpRequest</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData"><code>FormData</code></a></li>
</ul>
</li>
<li><a class="external external-icon" href="http://www.html5rocks.com/en/tutorials/file/xhr2/">HTML5 Rocks — New Tricks in XMLHttpRequest2</a></li>
<li><code>Chrome scope availability</code> — how to access XMLHttpRequest from JSM modules etc., which do not have access to DOM
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.importGlobalProperties">Components.utils.importGlobalProperties</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIXMLHttpRequest">nsIXMLHttpRequest</a></li>
</ul>
</li>
</ul>
|