aboutsummaryrefslogtreecommitdiff
path: root/files/it/web/api/xmlhttprequest
diff options
context:
space:
mode:
authorRyan Johnson <rjohnson@mozilla.com>2021-04-29 16:16:42 -0700
committerGitHub <noreply@github.com>2021-04-29 16:16:42 -0700
commit95aca4b4d8fa62815d4bd412fff1a364f842814a (patch)
tree5e57661720fe9058d5c7db637e764800b50f9060 /files/it/web/api/xmlhttprequest
parentee3b1c87e3c8e72ca130943eed260ad642246581 (diff)
downloadtranslated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz
translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2
translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip
remove retired locales (#699)
Diffstat (limited to 'files/it/web/api/xmlhttprequest')
-rw-r--r--files/it/web/api/xmlhttprequest/index.html173
-rw-r--r--files/it/web/api/xmlhttprequest/onreadystatechange/index.html119
-rw-r--r--files/it/web/api/xmlhttprequest/open/index.html115
-rw-r--r--files/it/web/api/xmlhttprequest/readystate/index.html152
-rw-r--r--files/it/web/api/xmlhttprequest/using_xmlhttprequest/index.html742
-rw-r--r--files/it/web/api/xmlhttprequest/xmlhttprequest/index.html50
6 files changed, 0 insertions, 1351 deletions
diff --git a/files/it/web/api/xmlhttprequest/index.html b/files/it/web/api/xmlhttprequest/index.html
deleted file mode 100644
index 634bd2ea10..0000000000
--- a/files/it/web/api/xmlhttprequest/index.html
+++ /dev/null
@@ -1,173 +0,0 @@
----
-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>
diff --git a/files/it/web/api/xmlhttprequest/onreadystatechange/index.html b/files/it/web/api/xmlhttprequest/onreadystatechange/index.html
deleted file mode 100644
index 1bbfb02852..0000000000
--- a/files/it/web/api/xmlhttprequest/onreadystatechange/index.html
+++ /dev/null
@@ -1,119 +0,0 @@
----
-title: XMLHttpRequest.onreadystatechange
-slug: Web/API/XMLHttpRequest/onreadystatechange
-translation_of: Web/API/XMLHttpRequest/onreadystatechange
----
-<div>{{APIRef}}</div>
-
-<p>UN <a href="/en-US/docs/Web/API/EventHandler" title="A possible way to get notified of Events of a particular type (such as click) for a given object is to specify an event handler using:"><code>EventHandler</code></a>  che è invocato ogni volta che l'attributo <code>readyState </code>cambia. la callback è invocata dal thread dell'interfaccia utente. </p>
-
-<p>La proprietà <strong><code>XMLHttpRequest.onreadystatechange</code></strong>  contiene l<code>'event handler </code>che deve essere invocato quando l'evento {{event("readystatechange")}} si verifica, ovvero ogni volta in cui la proprietà {{domxref("XMLHttpRequest.readyState", "readyState")}} del {{domxref("XMLHttpRequest")}} viene modificata.</p>
-
-<div class="warning">
-<p><strong>Warning:</strong> This should not be used with synchronous requests and must not be used from native code. .</p>
-</div>
-
-<p>L'evento <code>readystatechange</code> non si verificherà se una richiesta <code>XMLHttpRequest</code> viene cancellata utilizzando il metodo <a href="/en-US/docs/Web/API/XMLHttpRequest/abort">abort()</a>.</p>
-
-<div class="note">
-<p>UPDATE: it's firing in the latest version of browsers (Firefox 51.0.1, Opera 43.0.2442.991, Safari 10.0.3 (12602.4.8), Chrome 54.0.2840.71, Edge, IE11). Example <a href="https://jsfiddle.net/merksam/ve5oc0gn/">here</a> - just reaload page few times.</p>
-</div>
-
-<h2 id="Syntax" name="Syntax">Syntax</h2>
-
-<pre class="syntaxbox"><em>XMLHttpRequest</em>.onreadystatechange = <em>callback</em>;</pre>
-
-<h3 id="Values">Values</h3>
-
-<ul>
- <li><code><em>callback</em></code> è la funzione che viene eseguita quando  <code>readyState</code> cambia.</li>
-</ul>
-
-<h2 id="Example" name="Example">Example</h2>
-
-<pre class="brush: js">var xhr = new XMLHttpRequest(),
- method = "GET",
- url = "https://developer.mozilla.org/";
-
-xhr.open(<em>method</em>, <em>url</em>, true);
-xhr.onreadystatechange = function () {
- if(xhr.readyState === XMLHttpRequest.DONE &amp;&amp; xhr.status === 200) {
-  console.log(xhr.responseText);
-  }
-};
-xhr.send();</pre>
-
-<h2 id="Specifications">Specifications</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Specification</th>
- <th scope="col">Status</th>
- <th scope="col">Comment</th>
- </tr>
- <tr>
- <td>{{SpecName('XMLHttpRequest', '#handler-xhr-onreadystatechange')}}</td>
- <td>{{Spec2('XMLHttpRequest')}}</td>
- <td>WHATWG living standard</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Edge</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatChrome(1)}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatGeckoDesktop(1.0)}}</td>
- <td>{{CompatIe(7)}}<sup>[1]</sup></td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatSafari(1.2)}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Edge</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatUnknown}}</td>
- <td>1.0</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<p>[1] Internet Explorer version 5 and 6 supported ajax calls using <code>ActiveXObject()</code>.</p>
diff --git a/files/it/web/api/xmlhttprequest/open/index.html b/files/it/web/api/xmlhttprequest/open/index.html
deleted file mode 100644
index b4786aecc6..0000000000
--- a/files/it/web/api/xmlhttprequest/open/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: XMLHttpRequest.open()
-slug: Web/API/XMLHttpRequest/open
-translation_of: Web/API/XMLHttpRequest/open
----
-<p>{{APIRef('XMLHttpRequest')}}</p>
-
-<p>Il metodo <strong>XMLHttpRequest.open()</strong> inizializza una richiesta. Questo metodo è utilizzato da codice JavaScript; invece, per inizializzare una richiesta da codice nativo, usare <a class="internal" href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIXMLHttpRequest#openRequest()"><code>openRequest()</code></a>.</p>
-
-<div class="note"><strong>Nota:</strong> Chiamare questo metodo da una richiesta già attiva (una in cui <code>open()</code> o <code>openRequest()</code> è stata già chiamata) è equivalente a chiamare <code>abort()</code>.</div>
-
-<h2 id="Sintassi">Sintassi</h2>
-
-<pre class="syntaxbox">XMLHttpRequest.open(<var>metodo</var>,<var> url</var>)
-XMLHttpRequest.open(<var>metodo</var>,<var> url</var>,<var> async)</var>
-XMLHttpRequest.open(<var>metodo</var>,<var> url</var>,<var> async</var>,<var> utente</var>)
-XMLHttpRequest.open(<var>metodo</var>,<var> url</var>,<var> async</var>,<var> utente</var>,<var> password</var>)
-</pre>
-
-<h3 id="Parameters">Parameters</h3>
-
-<dl>
- <dt><code>metodo</code></dt>
- <dd>Il metodo HTTP da utilizzare, come "GET", "POST", "PUT", "DELETE", ecc. Campo ignorato per URL non-HTTP(S).</dd>
- <dt><code>url</code></dt>
- <dd>{{domxref("DOMString")}} che rappresenta l'URL a cui inviare la richiesta.</dd>
- <dt><code>async</code> {{optional_inline}}</dt>
- <dd>Un parametro opzionale Booleano, <code>true</code> in maniera predefinita, indicante se effettuare o meno l'operazione in modalità asincrona. Se questo valore è <code>false</code>, il metodo <code>send()</code> non ritornerà finchè la risposta non sarà ricevuta. Se <code>true</code>, la notifica di una transazione completata è fornita utilizzando gli event listener. Questo <em>must</em> essere true se l'attributo <code>multipart</code> è <code>true</code>, o partirà un eccezione.
- <div class="note"><strong>Nota:</strong> Da Gecko 30.0 {{geckoRelease("30.0")}}, le richieste sincrone sul thread principale sono state deprecate a causa di effetti negativi sull'esperienza utente.</div>
- </dd>
- <dt><code>utente</code> {{optional_inline}}</dt>
- <dd>Il valore opzionale del nome dell'utente da utilizzare per scopi di autenticazione; il valore predefinito è <code>null</code>.</dd>
- <dt><code>password</code> {{optional_inline}}</dt>
- <dd>La password opzionale da utilizzare per scopi di autenticaziones; il valore predefinito è <code>null</code>.</dd>
-</dl>
-
-<h2 id="Specifiche">Specifiche</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Specifica</th>
- <th scope="col">Stato</th>
- <th scope="col">Commento</th>
- </tr>
- <tr>
- <td>{{SpecName('XMLHttpRequest', '#the-open()-method', 'open()')}}</td>
- <td>{{Spec2('XMLHttpRequest')}}</td>
- <td>WHATWG living standard</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilità_fra_browser">Compatibilità fra browser</h2>
-
-<div>{{CompatibilityTable}}</div>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Funzionalità</th>
- <th>Chrome</th>
- <th>Edge</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari (WebKit)</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatChrome(1)}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{ CompatVersionUnknown}}</td>
- <td>{{CompatIe('5')}}<sup>[1]</sup><br>
- {{CompatIe('7')}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatSafari('1.2')}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Funzionalità</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Edge</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Supporto di base</td>
- <td>{{ CompatVersionUnknown}}</td>
- <td>1.0</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{ CompatVersionUnknown}}</td>
- <td>{{ CompatVersionUnknown}}</td>
- <td>{{ CompatVersionUnknown}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<p>[1] Questa funzionalità è stata implementata attraverso ActiveXObject(). Internet Explorer implementa lo standard XMLHttpRequest dalla versione 7.</p>
-
-<h2 id="Vedi_anche">Vedi anche</h2>
-
-<p><a href="/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">Utilizzare XMLHttpRequest</a></p>
diff --git a/files/it/web/api/xmlhttprequest/readystate/index.html b/files/it/web/api/xmlhttprequest/readystate/index.html
deleted file mode 100644
index a37fa1e1db..0000000000
--- a/files/it/web/api/xmlhttprequest/readystate/index.html
+++ /dev/null
@@ -1,152 +0,0 @@
----
-title: XMLHttpRequest.readyState
-slug: Web/API/XMLHttpRequest/readyState
-translation_of: Web/API/XMLHttpRequest/readyState
----
-<p>{{APIRef('XMLHttpRequest')}}</p>
-
-<p>la proprietà <strong>XMLHttpRequest.readyState</strong> restituisce lo stato nel quale si trova il client di una richiesta XMLHttpRequest. Un client <abbr title="XMLHttpRequest">XHR</abbr> si può trovare in uno degli stati seguenti:</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Value</td>
- <td class="header">State</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><code>0</code></td>
- <td><code>UNSENT</code></td>
- <td>Il Client è stato creato, ma il metodo <code>open()</code> della XHR non è stato ancora invocato.</td>
- </tr>
- <tr>
- <td><code>1</code></td>
- <td><code>OPENED</code></td>
- <td>Il metodo <code>open()</code> è stato invocato.</td>
- </tr>
- <tr>
- <td><code>2</code></td>
- <td><code>HEADERS_RECEIVED</code></td>
- <td>Il metodo <code>send() </code>della XHR è stato invocato, e sono già disponibili lo status della risposta HTTP ed il suo header. </td>
- </tr>
- <tr>
- <td><code>3</code></td>
- <td><code>LOADING</code></td>
- <td>Sta avvenendo il download dei dati; <code>responseText</code> contiene dati parziali.</td>
- </tr>
- <tr>
- <td><code>4</code></td>
- <td><code>DONE</code></td>
- <td>L'operazione è stata completata.</td>
- </tr>
- </tbody>
-</table>
-
-<dl>
- <dt>UNSENT</dt>
- <dd>Il Client è stato creato, ma il metodo <code>open()</code> della XHR non è stato ancora invocato.</dd>
- <dt>OPENED</dt>
- <dd>Il metodo <code>open() </code>della XHR è stato invocato. In questo stato è possibile settare l' header della richiesta HTTP utilizzando il metodo <a href="/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader">setRequestHeader()</a>; può essere invocato il metodo <a href="/en-US/docs/Web/API/XMLHttpRequest/send">send()</a>, che inizia il fetch della richiesta.</dd>
- <dt>HEADERS_RECEIVED</dt>
- <dd>Il metodo send() è stato invocato e sono stati ricevuto gli headers della risposta; è possibile conoscere il codice della risposta HTTP ed i suoi metadati.</dd>
- <dt>LOADING</dt>
- <dd>Sta avvenendo il download del body della risposta HTTP; se il <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseType">responseType</a></code> è "text" o vuoto, <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseText">responseText</a> </code>conterrà un testo parziale.</dd>
- <dt>DONE</dt>
- <dd>L'operazione di fetch è terminata; Questo può significare sia che il trasferimento dei dati è stato un successo e questi sono completamente disponibili o che è fallito.</dd>
-</dl>
-
-<div class="note">
-<p>The state names are different in Internet Explorer. Instead of <code>UNSENT</code>, <code>OPENED</code>,<code> HEADERS_RECEIVED</code>,<code> LOADING</code> and <code>DONE, the names READYSTATE_UNINITIALIZED</code> (0), <code>READYSTATE_LOADING</code> (1), <code>READYSTATE_LOADED</code> (2), <code>READYSTATE_INTERACTIVE</code> (3) and <code>READYSTATE_COMPLETE</code> (4) are used.</p>
-</div>
-
-<h2 id="Example">Example</h2>
-
-<pre class="brush: js">var xhr = new XMLHttpRequest();
-console.log('UNSENT', xhr.readyState); // readyState sarà pari a 0
-
-xhr.open('GET', '/api', true);
-console.log('OPENED', xhr.readyState); // readyState sarà pari a 1
-
-xhr.onprogress = function () {
- console.log('LOADING', xhr.readyState); // readyState sarà pari a 3
-};
-
-xhr.onload = function () {
- console.log('DONE', xhr.readyState); // readyState sarà pari a 4
-};
-
-xhr.send(null);
-</pre>
-
-<h2 id="Specifications">Specifications</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Specification</th>
- <th scope="col">Status</th>
- <th scope="col">Comment</th>
- </tr>
- <tr>
- <td>{{SpecName('XMLHttpRequest', '#states')}}</td>
- <td>{{Spec2('XMLHttpRequest')}}</td>
- <td>WHATWG living standard</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<div>{{CompatibilityTable}}</div>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Edge</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari (WebKit)</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatChrome(1)}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatGeckoDesktop("1.0")}}<sup>[1]</sup></td>
- <td>{{CompatIe(7)}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatSafari("1.2")}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Edge</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatUnknown}}</td>
- <td>1.0</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- </tr>
- </tbody>
-</table>
-</div>
diff --git a/files/it/web/api/xmlhttprequest/using_xmlhttprequest/index.html b/files/it/web/api/xmlhttprequest/using_xmlhttprequest/index.html
deleted file mode 100644
index ced11585b7..0000000000
--- a/files/it/web/api/xmlhttprequest/using_xmlhttprequest/index.html
+++ /dev/null
@@ -1,742 +0,0 @@
----
-title: Usare XMLHttpRequest
-slug: Web/API/XMLHttpRequest/Using_XMLHttpRequest
-translation_of: Web/API/XMLHttpRequest/Using_XMLHttpRequest
-original_slug: Web/API/XMLHttpRequest/Usare_XMLHttpRequest
----
-<p>Per inviare una richiesta HTTP, crea  un oggetto {{domxref("XMLHttpRequest")}}, apri un URL, ed invia la richiesta. Dopo che la transazione è completata, l'oggetto conterrà informazioni utili come il testo di risposta e lo <a href="/en-US/docs/HTTP/HTTP_response_codes" title="HTTP response codes">stato HTTP</a>. Questa pagina illustra alcuni dei più comuni e oscuri casi d'uso di questo potente oggetto <code>XMLHttpRequest</code>.</p>
-
-<pre class="brush: js">function reqListener () {
-  console.log(this.responseText);
-}
-
-var oReq = new XMLHttpRequest();
-oReq.onload = reqListener;
-oReq.open("GET", "http://www.example.org/example.txt");
-oReq.send();</pre>
-
-<h2 id="Tipi_di_Richieste">Tipi di Richieste</h2>
-
-<p>Una richiesta inviata con XMLHttpRequest può essere restituita in due modi, sincrona o asincrona. Il tipo di richiesta viene deciso dall'argomento opzionale <code>async</code> (il terzo argomento) che viene impostato nel metodo <a href="/en-US/docs/DOM/XMLHttpRequest#open()" title="DOM/XMLHttpRequest#open()">open()</a> di {{domxref("XMLHttpRequest.open()")}}. Se l'argomento è <code>true</code> o se non è specificato, il <code>XMLHttpRequest</code> è processato in maniera asincrona, in caso contrario è processato in maniera sincrona. Una discussione dettagliata è una dimostrazione di queste due tipologie di richieste possono essere trovate nella pagina <a href="/en-US/docs/DOM/XMLHttpRequest/Synchronous_and_Asynchronous_Requests" title="Synchronous and Asynchronous Requests">richieste sincrone ed asincrone</a>. In generale, dovresti usare raramente le richieste sincrone, se mai ne farai uso.</p>
-
-<div class="note"><strong>Nota:</strong> Da Gecko 30.0 {{ geckoRelease("30.0") }}, le richieste sincrone sul thread principale sono state deprecate a causa degli effetti negativi sull'esperienza utente.</div>
-
-<h2 id="Gestire_le_risposte">Gestire le risposte</h2>
-
-<p>Ci sono vari tipi di <a href="http://www.w3.org/TR/XMLHttpRequest2/#response" title="http://www.w3.org/TR/XMLHttpRequest2/#response">attributi di risposta</a> definite dallo standard W3C sul costruttore XMLHttpRequest. Questi sono in grado di fornire al client che effettua la richiesta importanti informazioni sullo stato della risposta. In alcuni casi in cui si lavora con risposte di tipo non testuale possono riguardare alcuni elementi di analisi e manipulazioni come evidenziato dai paragrafi seguenti.</p>
-
-<h3 id="Analizzare_e_modificare_la_proprietà_responseXML">Analizzare e modificare la proprietà  <code>responseXML</code></h3>
-
-<p>Se si usa l'oggetto <code>XMLHttpRequest</code> per ricevere il contenuto di un documento XML remoto, la proprietà <code>responseXML</code> dell'oggetto stesso sarà assegnata a un oggetto DOM contentente un il documento XML a cui è stata effettuata una operazione di parsing. Se si lavora con tale proprietà può essere difficile analizzare e modificare tale proprietà. Di seguito sono riportate i quattro principali metodi per lavorare con tale documento XML:</p>
-
-<ol>
- <li>Utilizzare <a href="/en-US/docs/XPath" title="XPath">XPath</a> per indirizzare (cioè puntare a) parti di esso.</li>
- <li>Usare <a href="/en-US/docs/JXON" title="JXON">JXON</a> per convertire il documento in un albero JavaScript Object.</li>
- <li>Effettuare il <a href="/en-US/docs/Parsing_and_serializing_XML" title="Parsing_and_serializing_XML">Parsing e la serializzazione XML</a> manualmente su stringhe e oggetti.</li>
- <li>Utilizzare un <a href="/en-US/docs/XMLSerializer" title="XMLSerializer">XMLSerializer</a> per serializzare <strong>alberi DOM su stringhe o file</strong>.</li>
- <li><a href="/en-US/docs/JavaScript/Reference/Global_Objects/RegExp" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/regexp">RegExp </a>possono essere utilizzate se si conosce sempre il contenuto del documento XML a priori. In tal caso, se si utilizzano delle espressioni regolari con coscienza dei ritorni di riga, può essere necessario o consigliato di rimuovere le interruzioni di riga. In ogni caso è sempre sconsigliato utilizzare questo metodo e di considerarlo solo come "ultima spiaggia" in quanto se il documento XML dovesse cambiare anche in modo irrisorio questa metodologia potrebbe fallire.</li>
-</ol>
-
-<h3 id="Analizzare_e_manipolare_una_proprietà_responseText_contenentente_un_documento_HTML">Analizzare e manipolare una proprietà <code>responseText</code> contenentente un documento HTML</h3>
-
-<div class="note"><strong>Nota:</strong> La W3C <a href="http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html">XMLHttpRequest</a> specification permette il parse del codice HTML tramite la proprietà <code>XMLHttpRequest.responseXML</code>. SI legga l'articolo a riguardo <a href="/en-US/docs/HTML_in_XMLHttpRequest" title="HTML_in_XMLHttpRequest">HTML in XMLHttpRequest</a> per dettagli.</div>
-
-<p>Se si utilizza l'oggetto <code>XMLHttpRequest</code> per ottenere il contenuto di una pagina HTML remota, la proprietà <code>responseText</code> conterrà un amalgama di tutti i tag HTML. Ciò può essere difficile da manipolare e analizzare. Ci sono principalmente tre divere metodologie per analizzare questo insieme:</p>
-
-<ol>
- <li>Utilizzare la proprietà <code>XMLHttpRequest.responseXML</code>.</li>
- <li>Iniettare il contenuto nel corpo di un <a href="/en-US/docs/Web/API/DocumentFragment">document fragment</a> attraverso la proprietà <code>fragment.body.innerHTML</code> e navigare il codice DOM del fragment.</li>
- <li>Ancora una volta <a href="/en-US/docs/JavaScript/Reference/Global_Objects/RegExp" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/regexp">RegExp </a>possono essere utlizzate se si conosce sempre il contenuto della risposta HTML. Questo metodo è, comuqnue, sconsigliato perchè anche una piccola modifica del codice HTML sorgente potrebbe protare questa metodologia a fallire.</li>
-</ol>
-
-<h2 id="Gestire_dati_binari">Gestire dati binari</h2>
-
-<p>Nonostante l'oggetto <code>XMLHttpRequest</code> è principalmente utilizzato per ricevere e inviare dati testuali, può essere utilizzato per inviare e ricevere dati dal contenuto binario. Esistono svariati metodi ben testati per fare sì che l'oggetto in questione invii dati binari. Questi metodo prevedono l'utilizzo del metodo <code>.overrideMimeType(...)</code> sull'oggetto.</p>
-
-<pre class="brush:js">var oReq = new XMLHttpRequest();
-oReq.open("GET", url, true);
-// riceve dei dati non porcessati come una stringa binaria
-oReq.overrideMimeType("text/plain; charset=x-user-defined");
-/* ... */
-</pre>
-
-<p>La XMLHttpRequest Level 2 Specification aggiunge un nuovo <a href="http://www.w3.org/TR/XMLHttpRequest2/#the-responsetype-attribute" title="http://www.w3.org/TR/XMLHttpRequest2/#the-responsetype-attribute">attributo responseType</a> che permette di inviare e ricevere dati binari in modo molto più semplice.</p>
-
-<pre class="brush:js">var oReq = new XMLHttpRequest();
-
-oReq.open("GET", url, true);
-oReq.responseType = "arraybuffer";
-oReq.onload = function(e) {
-  var arraybuffer = oReq.response; // non responseText
-  /* ... */
-}
-oReq.send();
-</pre>
-
-<p>Per più esempi si veda la pagina <a href="/en-US/docs/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data" title="DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data">Sending and Receiving Binary Data</a>.</p>
-
-<h2 id="Monitoraggio_del_progresso">Monitoraggio del progresso</h2>
-
-<p>L'oggetto <code>XMLHttpRequest</code> fornisce la possibilità di ascoltare svariati eventi che possono occorrere mentre la richiesta è processata. Questo inclulde periodici aggiornamenti sul progresso, notificazione di errori e così via.</p>
-
-<p>Il supporto agli eventi di monitoraggio del progresso DOM dell'oggetto <code>XMLHttpRequest</code> ripetta le API <a href="http://dev.w3.org/2006/webapi/progress/Progress.html" title="http://dev.w3.org/2006/webapi/progress/Progress.html">specification progress events</a>: tali eventi implementano l'interfaccia {{domxref("ProgressEvent")}}.</p>
-
-<pre class="brush:js">var oReq = new XMLHttpRequest();
-
-oReq.addEventListener("progress", updateProgress, false);
-oReq.addEventListener("load", transferComplete, false);
-oReq.addEventListener("error", transferFailed, false);
-oReq.addEventListener("abort", transferCanceled, false);
-
-oReq.open();
-
-// ...
-
-// progress on transfers from the server to the client (downloads)
-function updateProgress (oEvent) {
-  if (oEvent.lengthComputable) {
-    var percentComplete = oEvent.loaded / oEvent.total;
-    // ...
-  } else {
-    // Impossibile elaborare il progresso perche' non si conosce la grandezza totale
-  }
-}
-
-function transferComplete(evt) {
- alert("Trasferimento completato!");
-}
-
-function transferFailed(evt) {
- alert("E' avvenuto un errore nel trasferimento");
-}
-
-function transferCanceled(evt) {
- alert("Il trasferimento è stato cancellato dall'utente");
-}</pre>
-
-<p>Le linee 3-6 aggiungono degli event listener per i vari eventi che sono inviati mentre si performa un trasferimento di dati con l'oggetto <code>XMLHttpRequest</code>.</p>
-
-<div class="note"><strong>Nota:</strong> Quando si assegnano degli event listeners è necessario farlo prima di chiamare il metodo <code>open()</code> sulla richiesta. Se ciò non viene effettuato gli eventi non vengono inviati.</div>
-
-<p>L'event handler per il progresso, specificato dalla funzione <code>updateProgress()</code> in questo esempio, riceve il numero totale di byte da trasferire e il numero di byte trasferiti finora nei campi <code>total</code> e <code>loaded</code> rispettivamente. In ogni caso, se il campo <code>lengthComputable</code> risulta falsa, la lunghezza totale risulta sconosciuta e sarà riportata come zero.</p>
-
-<p>Gli eventi di progresso esistono sia per il download che per l'upload. Gli eventi di download sono notificati sull'oggetto <code>XMLHttpRequest</code> stesso, come indicato dall'esempio sopra. Quelli di upload, invece, sono notificati sull'attributo <code>XMLHttpRequest.upload</code> come mostrato sotto:</p>
-
-<pre class="brush:js">var oReq = new XMLHttpRequest();
-
-oReq.upload.addEventListener("progress", updateProgress, false);
-oReq.upload.addEventListener("load", transferComplete, false);
-oReq.upload.addEventListener("error", transferFailed, false);
-oReq.upload.addEventListener("abort", transferCanceled, false);
-
-oReq.open();
-</pre>
-
-<div class="note"><strong>Nota:</strong> Gli eventi di progresso non sono disponibili per il protocollo <code>file://</code>.</div>
-
-<div class="note"><strong>Nota</strong>: Correntemente ci sono dei bug aperti per gli eventi di progresso che affliggono la versione 25 di Firefox su <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=908375">OS X</a> e <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=786953">Linux</a>.</div>
-
-<div class="note">
-<p><strong>Nota:</strong> A partire da {{Gecko("9.0")}}, gli eventi di progresso possono essere lanciati per ogni parte di dato ricevuta, inclusa l'ultima parte dove l'ultimo pacchetto è ricevuto e la connesione chiusa prima che l'evento di progresso sia notificato. In questo caso l'evento di progresso è notificato automaticamente quando occorre l'evento di "load" per tale pacchetto. Questo permette di creare un monitoraggio affidabile solamente osservando gli eventi di progresso.</p>
-</div>
-
-<div class="note">
-<p><strong>Nota:</strong> A partire da  {{Gecko("12.0")}}, se l'evento di progresso è chiamato con un <code>responseType</code> di tipo <code>moz-blob</code>, il valore di risposta sarà un {{domxref("Blob")}} contenente i dati ricevuti fino a quel punto.</p>
-</div>
-
-<p>Si puà anche rilevare tutti e tre le tipologie di terminazione del caricamento(<code>abort</code>, <code>load</code> o <code>error</code>) utilizzando l'evento <code>loadend</code>:</p>
-
-<pre class="brush:js">req.addEventListener("loadend", loadEnd, false);
-
-function loadEnd(e) {
- alert("Trasferimento terminato (anche se non sappiamo come).");
-}
-</pre>
-
-<p>Si noti che non c'è modo di essere sicuri di conoscere con le informazioni ricevute dall'evento <code>loadend</code> quali condizioni hanno causato il termine dell'operazione. In ogni caso si può usare questo per gestire operazioni che devono essere eseguite al termine del trasferimento.</p>
-
-<h2 id="Inviare_form_e_caricare_file">Inviare form e caricare file</h2>
-
-<p>Istanze di un oggetto <code>XMLHttpRequest</code> possono essere usate per inviare form in principalmente due modi:</p>
-
-<ul>
- <li>utilizzando AJAX</li>
- <li>utilizzando le API fornite dall'oggetto <a href="/en-US/docs/DOM/XMLHttpRequest/FormData" title="DOM/XMLHttpRequest/FormData"><code>FormData</code></a></li>
-</ul>
-
-<p>Il <strong>secondo modo</strong> (utilizzando l'oggetto <code>FormData</code>) è il più semplice e veloce, ma ha lo svantaggio che i dati raccolto non possono essere <a href="/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify" title="/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify">trasformati in stringa</a>.<br>
- Il<strong> primo modo</strong>, invece, è più complesso, ma è anche in cambio più potente e flessibile.</p>
-
-<h3 id="Usando_loggetto_XMLHttpRequest">Usando l'oggetto <code>XMLHttpRequest</code></h3>
-
-<p>Inviare form senza le API dell'oggetto <a href="/en-US/docs/DOM/XMLHttpRequest/FormData" title="DOM/XMLHttpRequest/FormData"><code>FormData</code></a> non richiede l'utilizzo di altre API tranne nel caso di <a href="/en-US/docs/DOM/FileReader" title="/en-US/docs/DOM/FileReader"><code>FileReader</code></a> nel caso <strong>si voglia caricare più di un file</strong>.</p>
-
-<h4 id="Una_breve_introduzione_del_metodo_submit">Una breve introduzione del metodo submit</h4>
-
-<p>Un html {{ HTMLElement("form") }} può essere inviata in quattro possibili modi:</p>
-
-<ul>
- <li>utilizzando il metodo <code>POST</code> e assegnando all'attributo <code>enctype</code> il valore <code>application/x-www-form-urlencoded</code> (default);</li>
- <li>utilizzando il metodo <code>POST</code> e assegnando all'attributo <code>enctype</code> il valore <code>text/plain</code>;</li>
- <li>utilizzando il metodo <code>POST</code> e assegnando all'attributo <code>enctype</code> il valore <code>multipart/form-data</code>;</li>
- <li>utilizzando il metodo <code>GET</code> (in tal caso l'attributo <code>enctype</code> sarà ignorato).</li>
-</ul>
-
-<p>Ora, si consideri di inviare una form contenente solo due campi, chiamati <code>foo</code> e <code>baz</code>. Se si sta utilizzando il metodo <code>POST</code> il server riceverà una stringa simile a una delle seguenti tre linee a seconda del tipo di encoding utilizzato:</p>
-
-<ul>
- <li>
- <p>Metodo: <code>POST</code>; Encoding type: <code>application/x-www-form-urlencoded</code> (default):</p>
-
- <pre>Content-Type: application/x-www-form-urlencoded
-
-foo=bar&amp;baz=The+first+line.&amp;#37;0D%0AThe+second+line.%0D%0A</pre>
- </li>
- <li>
- <p>Metodo: <code>POST</code>; Encoding type: <code>text/plain</code>:</p>
-
- <pre>Content-Type: text/plain
-
-foo=bar
-baz=The first line.
-The second line.</pre>
- </li>
- <li>
- <p>Metodo: <code>POST</code>; Encoding type: <code>multipart/form-data</code>:</p>
-
- <pre style="height: 100px; overflow: auto;">Content-Type: multipart/form-data; boundary=---------------------------314911788813839
-
------------------------------314911788813839
-Content-Disposition: form-data; name="foo"
-
-bar
------------------------------314911788813839
-Content-Disposition: form-data; name="baz"
-
-The first line.
-The second line.
-
------------------------------314911788813839--</pre>
- </li>
-</ul>
-
-<p>Invece, se si utilizza un metodo <code>GET</code> una stringa simile alla seguente sarà semplicemente aggiunta all'URL:</p>
-
-<pre>?foo=bar&amp;baz=The%20first%20line.%0AThe%20second%20line.</pre>
-
-<h4 id="Un_piccolo_framwork_vanilla">Un piccolo framwork vanilla</h4>
-
-<p>Tutte queste cose sono eseguite automaticamente dal web browser ogni volta che si esegue il submit di una {{ HTMLElement("form") }}. Ma se si vuole fare lo stesso usando JavaScript bisogna istruire l'interprete su <em>tutte</em> le operazioni da eseguire. Inviare delle form in AJAX <em>puro</em> risulta troppo complesso per essere spiegato qui; per questa ragione abbiamo creato un <strong>framework completo (ma comunque puramente didattico)</strong> che possa essere usato in tutti e quattro i metodi di submit e anche per caricare dei file.</p>
-
-<div style="height: 400px; margin-bottom: 12px; overflow: auto;">
-<pre class="brush: html">&lt;!doctype html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
-&lt;title&gt;Sending forms with pure AJAX &amp;ndash; MDN&lt;/title&gt;
-&lt;script type="text/javascript"&gt;
-
-"use strict";
-
-/*\
-|*|
-|*|  :: XMLHttpRequest.prototype.sendAsBinary() Polyfill ::
-|*|
-|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary()
-\*/
-
-if (!XMLHttpRequest.prototype.sendAsBinary) {
-  XMLHttpRequest.prototype.sendAsBinary = function(sData) {
-    var nBytes = sData.length, ui8Data = new Uint8Array(nBytes);
-    for (var nIdx = 0; nIdx &lt; nBytes; nIdx++) {
-      ui8Data[nIdx] = sData.charCodeAt(nIdx) &amp; 0xff;
-    }
-    /* send as ArrayBufferView...: */
- this.send(ui8Data);
-    /* ...or as ArrayBuffer (legacy)...: this.send(ui8Data.buffer); */
-  };
-}
-
-/*\
-|*|
-|*|  :: AJAX Form Submit Framework ::
-|*|
-|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
-|*|
-|*| This framework is released under the GNU Public License, version 3 or later.
-|*|  http://www.gnu.org/licenses/gpl-3.0-standalone.html
-|*|
-|*|  Syntax:
-|*|
-|*|   AJAXSubmit(HTMLFormElement);
-\*/
-
-var AJAXSubmit = (function () {
-
-  function ajaxSuccess () {
-    /* console.log("AJAXSubmit - Success!"); */
-    alert(this.responseText);
-    /* you can get the serialized data through the "submittedData" custom property: */
-    /* alert(JSON.stringify(this.submittedData)); */
-  }
-
-  function submitData (oData) {
-    /* the AJAX request... */
-    var oAjaxReq = new XMLHttpRequest();
-    oAjaxReq.submittedData = oData;
-    oAjaxReq.onload = ajaxSuccess;
-    if (oData.technique === 0) {
-      /* method is GET */
-      oAjaxReq.open("get", oData.receiver.replace(/(?:\?.*)?$/, oData.segments.length &gt; 0 ? "?" + oData.segments.join("&amp;") : ""), true);
-      oAjaxReq.send(null);
-    } else {
-      /* method is POST */
-      oAjaxReq.open("post", oData.receiver, true);
-      if (oData.technique === 3) {
-        /* enctype is multipart/form-data */
-        var sBoundary = "---------------------------" + Date.now().toString(16);
-        oAjaxReq.setRequestHeader("Content-Type", "multipart\/form-data; boundary=" + sBoundary);
-        oAjaxReq.sendAsBinary("--" + sBoundary + "\r\n" + oData.segments.join("--" + sBoundary + "\r\n") + "--" + sBoundary + "--\r\n");
-      } else {
-        /* enctype is application/x-www-form-urlencoded or text/plain */
-        oAjaxReq.setRequestHeader("Content-Type", oData.contentType);
-        oAjaxReq.send(oData.segments.join(oData.technique === 2 ? "\r\n" : "&amp;"));
-      }
-    }
-  }
-
-  function processStatus (oData) {
-    if (oData.status &gt; 0) { return; }
-    /* the form is now totally serialized! do something before sending it to the server... */
-    /* doSomething(oData); */
-    /* console.log("AJAXSubmit - The form is now serialized. Submitting..."); */
-    submitData (oData);
-  }
-
-  function pushSegment (oFREvt) {
-    this.owner.segments[this.segmentIdx] += oFREvt.target.result + "\r\n";
-    this.owner.status--;
-    processStatus(this.owner);
-  }
-
-  function plainEscape (sText) {
-    /* how should I treat a text/plain form encoding? what characters are not allowed? this is what I suppose...: */
-    /* "4\3\7 - Einstein said E=mc2" ----&gt; "4\\3\\7\ -\ Einstein\ said\ E\=mc2" */
-    return sText.replace(/[\s\=\\]/g, "\\$&amp;");
-  }
-
-  function SubmitRequest (oTarget) {
-    var nFile, sFieldType, oField, oSegmReq, oFile, bIsPost = oTarget.method.toLowerCase() === "post";
-    /* console.log("AJAXSubmit - Serializing form..."); */
-    this.contentType = bIsPost &amp;&amp; oTarget.enctype ? oTarget.enctype : "application\/x-www-form-urlencoded";
-    this.technique = bIsPost ? this.contentType === "multipart\/form-data" ? 3 : this.contentType === "text\/plain" ? 2 : 1 : 0;
-    this.receiver = oTarget.action;
-    this.status = 0;
-    this.segments = [];
-    var fFilter = this.technique === 2 ? plainEscape : escape;
-    for (var nItem = 0; nItem &lt; oTarget.elements.length; nItem++) {
-      oField = oTarget.elements[nItem];
-      if (!oField.hasAttribute("name")) { continue; }
-      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
-      if (sFieldType === "FILE" &amp;&amp; oField.files.length &gt; 0) {
-        if (this.technique === 3) {
-          /* enctype is multipart/form-data */
-          for (nFile = 0; nFile &lt; oField.files.length; nFile++) {
-            oFile = oField.files[nFile];
-            oSegmReq = new FileReader();
-            /* (custom properties:) */
-            oSegmReq.segmentIdx = this.segments.length;
-            oSegmReq.owner = this;
-            /* (end of custom properties) */
-            oSegmReq.onload = pushSegment;
-            this.segments.push("Content-Disposition: form-data; name=\"" + oField.name + "\"; filename=\""+ oFile.name + "\"\r\nContent-Type: " + oFile.type + "\r\n\r\n");
-            this.status++;
-            oSegmReq.readAsBinaryString(oFile);
-          }
-        } else {
-          /* enctype is application/x-www-form-urlencoded or text/plain or method is GET: files will not be sent! */
-          for (nFile = 0; nFile &lt; oField.files.length; this.segments.push(fFilter(oField.name) + "=" + fFilter(oField.files[nFile++].name)));
-        }
-      } else if ((sFieldType !== "RADIO" &amp;&amp; sFieldType !== "CHECKBOX") || oField.checked) {
-        /* field type is not FILE or is FILE but is empty */
-        this.segments.push(
-          this.technique === 3 ? /* enctype is multipart/form-data */
-            "Content-Disposition: form-data; name=\"" + oField.name + "\"\r\n\r\n" + oField.value + "\r\n"
-          : /* enctype is application/x-www-form-urlencoded or text/plain or method is GET */
-            fFilter(oField.name) + "=" + fFilter(oField.value)
-        );
-      }
-    }
-    processStatus(this);
-  }
-
-  return function (oFormElement) {
-    if (!oFormElement.action) { return; }
-    new SubmitRequest(oFormElement);
-  };
-
-})();
-
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-
-&lt;h1&gt;Sending forms with pure AJAX&lt;/h1&gt;
-
-&lt;h2&gt;Using the GET method&lt;/h2&gt;
-
-&lt;form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Registration example&lt;/legend&gt;
-    &lt;p&gt;
-      First name: &lt;input type="text" name="firstname" /&gt;&lt;br /&gt;
-      Last name: &lt;input type="text" name="lastname" /&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;h2&gt;Using the POST method&lt;/h2&gt;
-&lt;h3&gt;Enctype: application/x-www-form-urlencoded (default)&lt;/h3&gt;
-
-&lt;form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Registration example&lt;/legend&gt;
-    &lt;p&gt;
-      First name: &lt;input type="text" name="firstname" /&gt;&lt;br /&gt;
-      Last name: &lt;input type="text" name="lastname" /&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;h3&gt;Enctype: text/plain&lt;/h3&gt;
-
-&lt;form action="register.php" method="post" enctype="text/plain" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Registration example&lt;/legend&gt;
-    &lt;p&gt;
-      Your name: &lt;input type="text" name="user" /&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      Your message:&lt;br /&gt;
-      &lt;textarea name="message" cols="40" rows="8"&gt;&lt;/textarea&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;h3&gt;Enctype: multipart/form-data&lt;/h3&gt;
-
-&lt;form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Upload example&lt;/legend&gt;
-    &lt;p&gt;
-      First name: &lt;input type="text" name="firstname" /&gt;&lt;br /&gt;
-      Last name: &lt;input type="text" name="lastname" /&gt;&lt;br /&gt;
-      Sex:
-      &lt;input id="sex_male" type="radio" name="sex" value="male" /&gt; &lt;label for="sex_male"&gt;Male&lt;/label&gt;
-      &lt;input id="sex_female" type="radio" name="sex" value="female" /&gt; &lt;label for="sex_female"&gt;Female&lt;/label&gt;&lt;br /&gt;
-      Password: &lt;input type="password" name="secret" /&gt;&lt;br /&gt;
-      What do you prefer:
-      &lt;select name="image_type"&gt;
-        &lt;option&gt;Books&lt;/option&gt;
-        &lt;option&gt;Cinema&lt;/option&gt;
-        &lt;option&gt;TV&lt;/option&gt;
-      &lt;/select&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      Post your photos:
-      &lt;input type="file" multiple name="photos[]"&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /&gt; &lt;label for="vehicle_bike"&gt;I have a bike&lt;/label&gt;&lt;br /&gt;
-      &lt;input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /&gt; &lt;label for="vehicle_car"&gt;I have a car&lt;/label&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      Describe yourself:&lt;br /&gt;
-      &lt;textarea name="description" cols="50" rows="8"&gt;&lt;/textarea&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;</pre>
-</div>
-
-<p>Per testarlo, create una pagina chiamata <strong>register.php </strong>(al quale fanno riferimento gli attributi action di queste form) e inserite il seguente contenuto.</p>
-
-<pre class="brush: php">&lt;?php
-/* register.php */
-
-header("Content-type: text/plain");
-
-/*
-NOTE: You should never use `print_r()` in production scripts, or
-otherwise output client-submitted data without sanitizing it first.
-Failing to sanitize can lead to cross-site scripting vulnerabilities.
-*/
-
-echo ":: data received via GET ::\n\n";
-print_r($_GET);
-
-echo "\n\n:: Data received via POST ::\n\n";
-print_r($_POST);
-
-echo "\n\n:: Data received as \"raw\" (text/plain encoding) ::\n\n";
-if (isset($HTTP_RAW_POST_DATA)) { echo $HTTP_RAW_POST_DATA; }
-
-echo "\n\n:: Files received ::\n\n";
-print_r($_FILES);
-
-</pre>
-
-<p>La sintassi per attivare lo script è semplicemente:</p>
-
-<pre class="syntaxbox">AJAXSubmit(myForm);</pre>
-
-<div class="note"><strong>Nota: </strong>Questo framework utilizza l'API <a href="/en-US/docs/DOM/FileReader" title="/en-US/docs/DOM/FileReader"><code>FileReader</code></a> per eseguire l'upload dei file. QUesta è una API recente e non ancora implementata nei browser come IE9 o inferiori. Per questa ragione l'upload AJAX-only è considerato una  <strong>tecnica sperimentale</strong>. Se non si ha bisogno dell'upload di file binari questo framework funzionera egregiamente nella maggior parte dei browser.</div>
-
-<div class="note"><strong>Nota:</strong> Il modo migliore per inviare dei contenuti binari è attraverso <a href="/en-US/docs/JavaScript/Typed_arrays/ArrayBuffer" title="/en-US/docs/JavaScript/Typed_arrays/ArrayBuffer">ArrayBuffers</a> o <a href="/en-US/docs/DOM/Blob" title="/en-US/docs/DOM/Blob">Blobs</a> attraverso il metodo <a href="/en-US/docs/DOM/XMLHttpRequest#send%28%29" title="/en-US/docs/DOM/XMLHttpRequest#send()"><code>send()</code></a> e possibilmente il metodo <a href="/en-US/docs/DOM/FileReader#readAsArrayBuffer()" title="/en-US/docs/DOM/FileReader#readAsArrayBuffer()"><code>readAsArrayBuffer()</code></a> dell'API <a href="/en-US/docs/DOM/FileReader" title="/en-US/docs/DOM/FileReader"><code>FileReader</code></a>. Ma, siccome l'obiettivo di questo script è di fuonzionare con dei dati  <a href="/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify" title="/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify">stringifiabli</a>, si è usato il metodo <a href="/en-US/docs/DOM/XMLHttpRequest#sendAsBinary%28%29" title="/en-US/docs/DOM/XMLHttpRequest#sendAsBinary()"><code>sendAsBinary()</code></a> assieme al metodo <a href="/en-US/docs/DOM/FileReader#readAsBinaryString%28%29" title="/en-US/docs/DOM/FileReader#readAsBinaryString()"><code>readAsBinaryString()</code></a> delle API <a href="/en-US/docs/DOM/FileReader" title="/en-US/docs/DOM/FileReader"><code>FileReader</code></a>. Per questo, lo script sopra funziona sono quando si stanno gestendo file di piccole dimensioni. Se non si intende caricare del contenuto binario, considerare anche l'utilizzo delle API <a href="/en-US/docs/DOM/XMLHttpRequest/FormData" title="DOM/XMLHttpRequest/FormData"><code>FormData</code></a>.</div>
-
-<h3 id="Usare_oggetti_FormData">Usare oggetti FormData</h3>
-
-<p>Il costruttore <a href="/en-US/docs/DOM/XMLHttpRequest/FormData" title="DOM/XMLHttpRequest/FormData"><code>FormData</code></a> permette di compliare una serie di coppie chiave/valore da inviare utilizzando una <code>XMLHttpRequest</code>. Si utilizza principalmente per inviare dati in una form, ma può essere usato indipendentemente dalle form per inviare dei dati con chiavi. I dati trasmessi sono gli stessi del formato utilizzato dal metodo <code>submit()</code> che le form usano per inviare i dati se il tipo encoding indicato è "multipart/form-data". Gli oggetti FormData possono essere utilizzati in uno svariato numero possibile con una XMLHttpRequest. Per esempi o speigazioni di come utilizzare una FormData con XMLHttpRequest si veda la pagina <a href="/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects" title="Using FormData Objects">Usare l'oggetto FormData</a>. Per fini didattici di seguito una traduzione dell'<strong><a href="#A_little_vanilla_framework" title="#A_little_vanilla_framework">esempio precedente</a> modificato per accettare l'API delle <code>FormData</code></strong>. Si noti la brevità del codice.</p>
-
-<div style="height: 400px; margin-bottom: 12px; overflow: auto;">
-<pre class="brush: html">&lt;!doctype html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
-&lt;title&gt;Sending forms with FormData &amp;ndash; MDN&lt;/title&gt;
-&lt;script type="text/javascript"&gt;
-"use strict";
-
-function ajaxSuccess () {
-  alert(this.responseText);
-}
-
-function AJAXSubmit (oFormElement) {
-  if (!oFormElement.action) { return; }
-  var oReq = new XMLHttpRequest();
-  oReq.onload = ajaxSuccess;
-  if (oFormElement.method.toLowerCase() === "post") {
-    oReq.open("post", oFormElement.action, true);
-    oReq.send(new FormData(oFormElement));
-  } else {
-    var oField, sFieldType, nFile, sSearch = "";
-    for (var nItem = 0; nItem &lt; oFormElement.elements.length; nItem++) {
-      oField = oFormElement.elements[nItem];
-      if (!oField.hasAttribute("name")) { continue; }
-      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
-      if (sFieldType === "FILE") {
-        for (nFile = 0; nFile &lt; oField.files.length; sSearch += "&amp;" + escape(oField.name) + "=" + escape(oField.files[nFile++].name));
-      } else if ((sFieldType !== "RADIO" &amp;&amp; sFieldType !== "CHECKBOX") || oField.checked) {
-        sSearch += "&amp;" + escape(oField.name) + "=" + escape(oField.value);
-      }
-    }
-    oReq.open("get", oFormElement.action.replace(/(?:\?.*)?$/, sSearch.replace(/^&amp;/, "?")), true);
-    oReq.send(null);
-  }
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-
-&lt;h1&gt;Sending forms with FormData&lt;/h1&gt;
-
-&lt;h2&gt;Using the GET method&lt;/h2&gt;
-
-&lt;form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Registration example&lt;/legend&gt;
-    &lt;p&gt;
-      First name: &lt;input type="text" name="firstname" /&gt;&lt;br /&gt;
-      Last name: &lt;input type="text" name="lastname" /&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;h2&gt;Using the POST method&lt;/h2&gt;
-&lt;h3&gt;Enctype: application/x-www-form-urlencoded (default)&lt;/h3&gt;
-
-&lt;form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Registration example&lt;/legend&gt;
-    &lt;p&gt;
-      First name: &lt;input type="text" name="firstname" /&gt;&lt;br /&gt;
-      Last name: &lt;input type="text" name="lastname" /&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;h3&gt;Enctype: text/plain&lt;/h3&gt;
-
-&lt;p&gt;The text/plain encoding is not supported by the FormData API.&lt;/p&gt;
-
-&lt;h3&gt;Enctype: multipart/form-data&lt;/h3&gt;
-
-&lt;form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;"&gt;
-  &lt;fieldset&gt;
-    &lt;legend&gt;Upload example&lt;/legend&gt;
-    &lt;p&gt;
-      First name: &lt;input type="text" name="firstname" /&gt;&lt;br /&gt;
-      Last name: &lt;input type="text" name="lastname" /&gt;&lt;br /&gt;
-      Sex:
-      &lt;input id="sex_male" type="radio" name="sex" value="male" /&gt; &lt;label for="sex_male"&gt;Male&lt;/label&gt;
-      &lt;input id="sex_female" type="radio" name="sex" value="female" /&gt; &lt;label for="sex_female"&gt;Female&lt;/label&gt;&lt;br /&gt;
-      Password: &lt;input type="password" name="secret" /&gt;&lt;br /&gt;
-      What do you prefer:
-      &lt;select name="image_type"&gt;
-        &lt;option&gt;Books&lt;/option&gt;
-        &lt;option&gt;Cinema&lt;/option&gt;
-        &lt;option&gt;TV&lt;/option&gt;
-      &lt;/select&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      Post your photos:
-      &lt;input type="file" multiple name="photos[]"&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /&gt; &lt;label for="vehicle_bike"&gt;I have a bike&lt;/label&gt;&lt;br /&gt;
-      &lt;input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /&gt; &lt;label for="vehicle_car"&gt;I have a car&lt;/label&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      Describe yourself:&lt;br /&gt;
-      &lt;textarea name="description" cols="50" rows="8"&gt;&lt;/textarea&gt;
-    &lt;/p&gt;
-    &lt;p&gt;
-      &lt;input type="submit" value="Submit" /&gt;
-    &lt;/p&gt;
-  &lt;/fieldset&gt;
-&lt;/form&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;</pre>
-</div>
-
-<div class="note"><strong>Nota:</strong> Come si è detto,gli oggetti<strong> {{domxref("FormData")}} non sono <a href="/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify" title="/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify">stringifiabli</a></strong>. Se si desidera porre in stringa dei dati inviati, utilizzare il <a href="#A_little_vanilla_framework" title="#A_little_vanilla_framework">precedente esempio in AJAX puro</a>. Si noti che ci sono degli elementi <code>file</code> nel campo {{ HTMLElement("input") }}, <strong>quando si invia una form attraverso l'API <code>FormData</code> API non è necessario utilizzare le API <a href="/en-US/docs/DOM/FileReader" title="/en-US/docs/DOM/FileReader"><code>FileReader</code></a></strong>: i file sono automaticamente caricati.</div>
-
-<h2 id="Get_last_modified_date">Get last modified date</h2>
-
-<pre class="brush: js">function getHeaderTime () {
-  alert(this.getResponseHeader("Last-Modified")); /* A valid GMTString date or null */
-}
-
-var oReq = new XMLHttpRequest();
-oReq.open("HEAD" /* use HEAD if you only need the headers! */, "yourpage.html", true);
-oReq.onload = getHeaderTime;
-oReq.send();</pre>
-
-<h3 id="Do_something_when_last_modified_date_changes">Do something when last modified date changes</h3>
-
-<p>Let's create these two functions:</p>
-
-<pre class="brush: js">function getHeaderTime () {
-
-  var
-    nLastVisit = parseFloat(window.localStorage.getItem('lm_' + this.filepath)),
-    nLastModif = Date.parse(this.getResponseHeader("Last-Modified"));
-
-  if (isNaN(nLastVisit) || nLastModif &gt; nLastVisit) {
- window.localStorage.setItem('lm_' + this.filepath, Date.now());
-    isFinite(nLastVisit) &amp;&amp; this.callback(nLastModif, nLastVisit);
-  }
-
-}
-
-function ifHasChanged(sURL, fCallback) {
-  var oReq = new XMLHttpRequest();
-  oReq.open("HEAD" /* use HEAD - we only need the headers! */, sURL, true);
-  oReq.callback = fCallback;
-  oReq.filepath = sURL;
-  oReq.onload = getHeaderTime;
-  oReq.send();
-}</pre>
-
-<p>Test:</p>
-
-<pre class="brush: js">/* Let's test the file "yourpage.html"... */
-
-ifHasChanged("yourpage.html", function (nModif, nVisit) {
-  alert("The page '" + this.filepath + "' has been changed on " + (new Date(nModif)).toLocaleString() + "!");
-});</pre>
-
-<p>If you want to know <strong>whether <em>the current page</em> has changed</strong>, please read the article about <a href="/en-US/docs/Web/API/document.lastModified" title="/en-US/docs/Web/API/document.lastModified"><code>document.lastModified</code></a>.</p>
-
-<h2 id="Cross-site_XMLHttpRequest">Cross-site XMLHttpRequest</h2>
-
-<p>Modern browsers support cross-site requests by implementing the web applications working group's <a href="/en-US/docs/HTTP_access_control" title="HTTP access control">Access Control for Cross-Site Requests</a> standard.  As long as the server is configured to allow requests from your web application's origin, <code>XMLHttpRequest</code> will work.  Otherwise, an <code>INVALID_ACCESS_ERR</code> exception is thrown.</p>
-
-<h2 id="Bypassing_the_cache">Bypassing the cache</h2>
-
-<p><span style="line-height: 1.572;">A, cross-browser compatible approach to bypassing the cache is to append a timestamp to the URL, being sure to include a "?" or "&amp;" as appropriate.  For example:</span></p>
-
-<pre>http://foo.com/bar.html -&gt; http://foo.com/bar.html?12345
-http://foo.com/bar.html?foobar=baz -&gt; http://foo.com/bar.html?foobar=baz&amp;12345
-</pre>
-
-<p>Since the local cache is indexed by URL, this causes every request to be unique, thereby bypassing the cache.</p>
-
-<p>You can automatically adjust URLs using the following code:</p>
-
-<pre class="brush:js">var oReq = new XMLHttpRequest();
-
-oReq.open("GET", url + ((/\?/).test(url) ? "&amp;" : "?") + (new Date()).getTime(), true);
-oReq.send(null);</pre>
-
-<h2 id="Security">Security</h2>
-
-<p>{{fx_minversion_note(3, "Versions of Firefox prior to Firefox 3 allowed you to set the preference <code>capability.policy.&lt;policyname&gt;.XMLHttpRequest.open&lt;/policyname&gt;</code> to <code>allAccess</code> to give specific sites cross-site access.  This is no longer supported.")}}</p>
-
-<p>{{fx_minversion_note(5, "Versions of Firefox prior to Firefox 5 could use <code>netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\");</code> to request cross-site access. This is no longer supported, even though it produces no warning and permission dialog is still presented.")}}</p>
-
-<p>The recommended way to enable cross-site scripting is to use the <code>Access-Control-Allow-Origin </code> HTTP header in the response to the XMLHttpRequest.</p>
-
-<h3 id="XMLHttpRequests_being_stopped">XMLHttpRequests being stopped</h3>
-
-<p>If you end up with an XMLHttpRequest having <code>status=0</code> and <code>statusText=null</code>, it means that the request was not allowed to be performed. It was <code><a href="http://www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-unsent" title="http://www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-unsent">UNSENT</a></code>. A likely cause for this is when the <a href="http://www.w3.org/TR/XMLHttpRequest/#xmlhttprequest-origin" style="outline: 1px dotted; outline-offset: 0pt;"><code>XMLHttpRequest</code> origin</a> (at the creation of the XMLHttpRequest) has changed when the XMLHttpRequest is then <code>open()</code>. This case can happen for example when one has an XMLHttpRequest that gets fired on an onunload event for a window: the XMLHttpRequest gets in fact created when the window to be closed is still there, and then the request is sent (ie <code>open()</code>) when this window has lost its focus and potentially different window has gained focus. The way to avoid this problem is to set a listener on the new window "activate" event that gets set when the old window has its "unload" event fired.</p>
-
-<h2 id="Using_XMLHttpRequest_from_JavaScript_modules_XPCOM_components">Using XMLHttpRequest from JavaScript modules / XPCOM components</h2>
-
-<p>Instantiating <code>XMLHttpRequest</code> from a <a href="/en-US/docs/JavaScript_code_modules/Using" title="https://developer.mozilla.org/en/JavaScript_code_modules/Using_JavaScript_code_modules">JavaScript module</a> or an XPCOM component works a little differently; it can't be instantiated using the <code>XMLHttpRequest()</code> constructor. The constructor is not defined inside components and the code results in an error. The best way to work around this is to use the XPCOM component constructor.</p>
-
-<pre class="brush: js">const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
-</pre>
-
-<p>Unfortunately in versions of Gecko prior to Gecko 16 there is a bug which can cause requests created this way to be cancelled for no reason.  If you need your code to work on Gecko 15 or earlier, you can get the XMLHttpRequest constructor from the hidden DOM window like so.</p>
-
-<pre class="brush:js">const { XMLHttpRequest } = Components.classes["@mozilla.org/appshell/appShellService;1"]
- .getService(Components.interfaces.nsIAppShellService)
- .hiddenDOMWindow;
-var oReq = new XMLHttpRequest();</pre>
-
-<h2 id="See_also">See also</h2>
-
-<ol>
- <li><a href="/en-US/docs/AJAX/Getting_Started" title="AJAX/Getting_Started">MDN AJAX introduction</a></li>
- <li><a href="/en-US/docs/HTTP_access_control" title="HTTP access control">HTTP access control</a></li>
- <li><a href="/en-US/docs/How_to_check_the_security_state_of_an_XMLHTTPRequest_over_SSL" title="How to check the security state of an XMLHTTPRequest over SSL">How to check the security state of an XMLHTTPRequest over SSL</a></li>
- <li><a href="http://www.peej.co.uk/articles/rich-user-experience.html">XMLHttpRequest - REST and the Rich User Experience</a></li>
- <li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmobjxmlhttprequest.asp">Microsoft documentation</a></li>
- <li><a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">Apple developers' reference</a></li>
- <li><a href="http://jibbering.com/2002/4/httprequest.html">"Using the XMLHttpRequest Object" (jibbering.com)</a></li>
- <li><a href="http://www.w3.org/TR/XMLHttpRequest/">The XMLHttpRequest Object: W3C Specification</a></li>
- <li><a href="http://dev.w3.org/2006/webapi/progress/Progress.html" title="http://dev.w3.org/2006/webapi/progress/Progress.html">Web Progress Events specification</a></li>
- <li></li>
-</ol>
diff --git a/files/it/web/api/xmlhttprequest/xmlhttprequest/index.html b/files/it/web/api/xmlhttprequest/xmlhttprequest/index.html
deleted file mode 100644
index bb54418a41..0000000000
--- a/files/it/web/api/xmlhttprequest/xmlhttprequest/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: XMLHttpRequest()
-slug: Web/API/XMLHttpRequest/XMLHttpRequest
-translation_of: Web/API/XMLHttpRequest/XMLHttpRequest
----
-<div>{{draft}}{{APIRef('XMLHttpRequest')}}</div>
-
-<p><span class="seoSummary">Il costruttore <code><strong>XMLHttpRequest()</strong></code> crea una nuova {{domxref("XMLHttpRequest")}}.</span></p>
-
-<p>Per ulteriori dettagli sull'utilizzo di <code>XMLHttpRequest</code>, si veda <a class="internal" href="/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">Come usare XMLHttpRequest</a>.</p>
-
-<h2 id="Sintassi">Sintassi</h2>
-
-<pre class="syntaxbox">const<em>richiesta</em> = new XMLHttpRequest();
-</pre>
-
-<h3 id="Parametri">Parametri</h3>
-
-<p>Nessuno.</p>
-
-<h3 id="Valore_di_ritorno">Valore di ritorno</h3>
-
-<p>Un nuovo oggetto {{domxref("XMLHttpRequest")}}. Prima di chiamare {{domxref("XMLHttpRequest.send", "send()")}}, che invia la richiesta al server, l'oggetto va predisposto inizializzandolo, chiamando almeno {{domxref("XMLHttpRequest.open", "open()")}}.</p>
-
-<h2 id="Sintassi_non-standard_di_Firefox">Sintassi non-standard di Firefox</h2>
-
-<p>Firefox 16 ha aggiunto al costruttore un parametro non-standard che permette di abilitare la modalità anonima (si veda {{Bug("692677")}}). Assegnare il valore <code>true</code> alla flag <code>mozAnon</code> equivale all'atto pratico al costruttore <a href="http://www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/#dom-anonxmlhttprequest" title="see AnonXMLHttpRequest in the XMLHttpRequest specification"><code>AnonXMLHttpRequest()</code></a> descritto nelle versioni precedenti delle specifiche di XMLHttpRequest.</p>
-
-<pre class="syntaxbox">const<em>richiesta</em> = new XMLHttpRequest(<em><var>dizParametri</var></em>);</pre>
-
-<h3 id="Parametri_non-standard">Parametri (non-standard)</h3>
-
-<dl>
- <dt><code>objParameters</code> {{gecko_minversion_inline("16.0")}}</dt>
- <dd>Sono disponibili due flag:
- <dl>
- <dt><code>mozAnon</code></dt>
- <dd>Booleano: assegnando <code>true</code> a questa flag il browser non esporrà né l'{{Glossary("origine")}} né le <a href="http://www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/#user-credentials" title="Defintion of “User credentials” in the XMLHttpRequest specification.">credenziali dell'utente</a> durante il recupero delle risorse. Ciò significa soprattutto che non verrà inviato alcun {{Glossary("Cookie", "cookie")}} a meno di non aggiungerlo esplicitamente attraverso setRequestHeader.</dd>
- <dt><code>mozSystem</code></dt>
- <dd>Booleano: assegnando <code>true</code> a questa flag vengono permesse connessioni inter-sito senza il consenso del server di destinazione dato attraverso {{Glossary("CORS")}}. <em>Richiede anche <code>mozAnon: true</code>, ovvero non si possono inviare cookie od altre credenziali dell'utente usando questo metodo. Questa flag funziona solo in app con privilegi, cioé sottoposte a riesame ({{Bug("692677")}}); non funziona su qualsivoglia pagine caricate da Firefox.</em></dd>
- </dl>
- </dd>
-</dl>
-
-<h2 id="Voci_correlate">Voci correlate</h2>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">Come usare XMLHttpRequest</a></li>
- <li><a href="/en-US/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest">HTML in XMLHttpRequest</a></li>
-</ul>