XML HttpRequest
Všechny moderní prohlížeče mají vestavěný objekt XMLHttpRequest pro vyžádání dat ze serveru.
Objekt XMLHttpRequest
Objekt XMLHttpRequest lze použít k vyžádání dat z webového serveru.
Objekt XMLHttpRequest je snem vývojářů , protože můžete:
- Aktualizujte webovou stránku bez opětovného načítání stránky
- Vyžádat si data ze serveru - po načtení stránky
- Přijímat data ze serveru - po načtení stránky
- Odesílejte data na server - na pozadí
Příklad XMLHttpRequest
Když do vstupního pole níže zadáte znak, na server se odešle požadavek XMLHttpRequest a vrátí se některé návrhy jmen (ze serveru):
Příklad
Výše uvedený příklad je vysvětlen v kapitolách AJAX tohoto návodu.
Odeslání požadavku XMLHttpRequest
Běžná syntaxe JavaScriptu pro použití objektu XMLHttpRequest vypadá asi takto:
Příklad
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();
Příklad vysvětlen
První řádek ve výše uvedeném příkladu vytváří objekt XMLHttpRequest :
var xhttp = new XMLHttpRequest();
Vlastnost onreadystatechange určuje funkci, která se má provést pokaždé, když se změní stav objektu XMLHttpRequest:
xhttp.onreadystatechange = function()
Když je vlastnost readyState 4 a vlastnost status je 200, odpověď je připravena:
if (this.readyState == 4 && this.status == 200)
Vlastnost responseText vrací odpověď serveru jako textový řetězec.
Textový řetězec lze použít k aktualizaci webové stránky:
document.getElementById("demo").innerHTML = xhttp.responseText;
Mnohem více se o objektu XMLHttpRequest dozvíte v kapitolách AJAX tohoto tutoriálu.
Staré verze Internet Exploreru (IE5 a IE6)
Staré verze aplikace Internet Explorer (IE5 a IE6) nepodporují objekt XMLHttpRequest.
Chcete-li zpracovat IE5 a IE6, zkontrolujte, zda prohlížeč podporuje objekt XMLHttpRequest, nebo vytvořte ActiveXObject:
Příklad
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}