Żądanie HTTP XML
Wszystkie nowoczesne przeglądarki mają wbudowany obiekt XMLHttpRequest do żądania danych z serwera.
Obiekt XMLHttpRequest
Obiekt XMLHttpRequest może służyć do żądania danych z serwera WWW.
Obiekt XMLHttpRequest to marzenie programistów , ponieważ możesz:
- Zaktualizuj stronę internetową bez ponownego ładowania strony
- Żądaj danych z serwera - po załadowaniu strony
- Odbierz dane z serwera - po załadowaniu strony
- Wysyłaj dane na serwer - w tle
Przykład XMLHttpRequest
Po wpisaniu znaku w polu wejściowym poniżej, do serwera wysyłane jest żądanie XMLHttpRequest i zwracane są niektóre sugestie nazw (z serwera):
Przykład
Powyższy przykład jest wyjaśniony w rozdziałach AJAX tego samouczka.
Wysyłanie XMLHttpRequest
Powszechna składnia JavaScript do używania obiektu XMLHttpRequest wygląda mniej więcej tak:
Przykład
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();
Przykład wyjaśniony
Pierwsza linia w powyższym przykładzie tworzy obiekt XMLHttpRequest :
var xhttp = new XMLHttpRequest();
Właściwość onreadystatechange określa funkcję, która ma być wykonywana za każdym razem, gdy zmieni się status obiektu XMLHttpRequest:
xhttp.onreadystatechange = function()
Gdy właściwość readyState ma wartość 4, a właściwość status ma wartość 200, odpowiedź jest gotowa:
if (this.readyState == 4 && this.status == 200)
Właściwość responseText zwraca odpowiedź serwera w postaci ciągu tekstowego.
Ciąg tekstowy może być użyty do aktualizacji strony internetowej:
document.getElementById("demo").innerHTML = xhttp.responseText;
Dużo więcej o obiekcie XMLHttpRequest dowiesz się z rozdziałów AJAX tego samouczka.
Stare wersje Internet Explorera (IE5 i IE6)
Stare wersje Internet Explorera (IE5 i IE6) nie obsługują obiektu XMLHttpRequest.
Aby obsłużyć IE5 i IE6, sprawdź, czy przeglądarka obsługuje obiekt XMLHttpRequest, lub utwórz obiekt ActiveXObject:
Przykład
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}