Richiesta HTTP XML
Tutti i browser moderni hanno un oggetto XMLHttpRequest integrato per richiedere dati da un server.
L'oggetto XMLHttpRequest
L'oggetto XMLHttpRequest può essere utilizzato per richiedere dati da un server web.
L'oggetto XMLHttpRequest è un sogno degli sviluppatori , perché puoi:
- Aggiorna una pagina web senza ricaricare la pagina
- Richiedi i dati da un server - dopo che la pagina è stata caricata
- Ricevi dati da un server - dopo che la pagina è stata caricata
- Invia dati a un server - in background
Esempio di richiesta XMLHttp
Quando si digita un carattere nel campo di input sottostante, viene inviata una XMLHttpRequest al server e vengono restituiti alcuni suggerimenti sui nomi (dal server):
Esempio
L'esempio sopra è spiegato nei capitoli AJAX di questo tutorial.
Invio di una richiesta XMLHttp
Una sintassi JavaScript comune per l'utilizzo dell'oggetto XMLHttpRequest è molto simile a questa:
Esempio
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Typical action to be performed when the document is ready:
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "filename", true);
xhttp.send();
Esempio spiegato
La prima riga nell'esempio sopra crea un oggetto XMLHttpRequest :
var xhttp = new XMLHttpRequest();
La proprietà onreadystatechange specifica una funzione da eseguire ogni volta che lo stato dell'oggetto XMLHttpRequest cambia:
xhttp.onreadystatechange = function()
Quando la proprietà readyState è 4 e la proprietà status è 200, la risposta è pronta:
if (this.readyState == 4 && this.status == 200)
La proprietà responseText restituisce la risposta del server come stringa di testo.
La stringa di testo può essere utilizzata per aggiornare una pagina web:
document.getElementById("demo").innerHTML = xhttp.responseText;
Imparerai molto di più sull'oggetto XMLHttpRequest nei capitoli AJAX di questo tutorial.
Vecchie versioni di Internet Explorer (IE5 e IE6)
Le versioni precedenti di Internet Explorer (IE5 e IE6) non supportano l'oggetto XMLHttpRequest.
Per gestire IE5 e IE6, controlla se il browser supporta l'oggetto XMLHttpRequest, oppure crea un ActiveXObject:
Esempio
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}