--- title: XMLHttpRequest slug: Web/API/XMLHttpRequest translation_of: Web/API/XMLHttpRequest ---
{{APIRef("XMLHttpRequest")}}
 

Az XMLHttpRequest API a szerverrel való direkt kommunikációra használható, a teljes oldal újratöltése nélkül. Ez lehetővé teszi a weboldalak bizonyos adatainak frissítését, a nélkül, hogy a felhasználónak meg kéne szakítania azt, amit éppen csinál.  Az XMLHttpRequest az Ajax alapja.

{{InheritanceDiagram}}

Történet

Az XMLHttpRequest objektumot eredetileg a Microsoft alkotta meg, később átvette a Mozilla, az Apple, és a Google is. Mára általánosan elfogadott szabvány lett a WHATWG által. A neve ellenére, az XMLHttpRequest több adattípussal képes dolgozni, nem csupán az XML-el, és a HTTP mellett más protokollokat is támogat (beleértve a file és az ftp protokollt is).

Konstruktor

{{domxref("XMLHttpRequest.XMLHttpRequest", "XMLHttpRequest()")}}
A konstruktor létrehoz egy üres XMLHttpRequest objektumot. Ez szükséges előfeltétele annak, hogy az objektum eljárásait meghívhassunk.
  var xhr = new XMLHttpRequest();
 

Tulajdonságok

Az XMLHttpRequest API az {{domxref("XMLHttpRequestEventTarget")}} és az {{domxref("EventTarget")}} tulajdonságait is örökli.

{{domxref("XMLHttpRequest.onreadystatechange")}}
Ez az {{domxref("EventHandler")}} (eseménykezelő) mindig meghívódik, amikor a readyState tulajdonság értéke megváltozik, így – szükség szerint – minden állapothoz külön esemény vagy eljárás rendelhető. Az alábbi példában minden állapotváltozásról tájékoztatjuk a felhasználót:
  xhr.onreadystatechange = function () {
    switch(xhr.readyState) {
      case 0: alert("A kérelem nem inicializált");
      break;
      case 1: alert("A kapcsolat létrejött");
      break;
      case 2: alert("A kérelem fogadva");
      break;
      case 3: alert("A kérelem feldolgozása folyamatban");
      break;
      default: alert("A kérelem feldolgozva, válasz kész");
    }
  };
 
A gyakorlatban erre azonban ritkán van szükség. Praktikusabb, ha csak a feldolgozott kérelemre érkező válaszra reagálunk (az alábbi példában kiírjuk a válasz szövegét):
  xhr.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      alert(this.responseText);
    }
  };
 
{{domxref("XMLHttpRequest.readyState")}} {{readonlyinline}}
A kérelem állapotát jelző előjel nélküli számmal tér vissza, amely lehet:
  1. - ha a kérés nem inicializált
  2. - ha a kapcsolat létrejött a szerverrel
  3. - ha a kérés fogadva
  4. - ha a kérés feldolgozása folyamatban
  5. - ha a kérés kész, válasz kész
{{domxref("XMLHttpRequest.response")}} {{readonlyinline}}
A válasz törzsét tartalmazza, melynek típusát a {{domxref("XMLHttpRequest.responseType")}} tulajdonság értéke határozza meg.
{{domxref("XMLHttpRequest.responseText")}} {{readonlyinline}}
Visszatérési értéke lehet {{domxref("DOMString")}} amely egyszerű szövegként tartalmazza a választ az elküldött kérelemre, vagy null,ha a kérelem sikertelen volt.
{{domxref("XMLHttpRequest.responseType")}}
A válasz típusát határozza meg, amely lehet:
{{domxref("XMLHttpRequest.responseURL")}} {{readonlyinline}}
Visszatérési értéke a válasz szerializált URL-je, vagy üres sztring, ha az URL értéke null.
{{domxref("XMLHttpRequest.responseXML")}} {{readonlyinline}}
Egy {{domxref("Document")}}-el tér vissza, amely tartalmazza a kérelemre kapott választ XML formátumban, vagy null-t, ha a kérés sikertelen, nem lehetett elküldeni, illetve a válasz nem jeleníthető meg XML formátumban. Not available in workers.
{{domxref("XMLHttpRequest.status")}} {{readonlyinline}}
A szerver által a kérelemre küldött válasz HTTP státusz-kódját adja vissza, előjel nélküli, háromjegyű szám formátumban (pl. 200, ha a kérelem elfogadva, 404, ha a kért erőforrás nem található a szerveren - bővebben a HTTP státusz kódokról itt).
{{domxref("XMLHttpRequest.statusText")}} {{readonlyinline}}
A szerver által küldött válasz státusz-kódjához tartozó szöveggel (response message) tér vissza (pl. "200 OK", siker esetén, bővebben lásd fent).

Megjegyzés: a HTTP/2 specifikáció alapján (8.1.2.4 Response Pseudo-Header Fields) HTTP/2 válaszokat egy :status pseudo-header mező határozza meg, amely tartalmazza a HTTP státusz kód mezőt is. A HTTP/2 nem határozza meg, hogy a verzió és más kifejezések hogy jelenjenek meg a válasz HTTP/1.1 állapot-sorában.

{{domxref("XMLHttpRequest.timeout")}}
Egy előjel nélküli egész szám, amely megadja a várakozási időt (ezredmásodpercben) a kapcsolat automatikus lezárásig.
{{domxref("XMLHttpRequestEventTarget.ontimeout")}}
Ez egy {{domxref("EventHandler")}} (eseménykezelő), amely a {{domxref("XMLHttpRequest.timeout")}} tulajdonságban megadott idő túllépése esetén mindig meghívódik. {{gecko_minversion_inline("12.0")}}
xhr.timeout = 4000; //Időtúllépés beállítása 4 másodpercre
xhr.ontimeout = function () { alert("Időtúllépés!!!"); }
/* Időtúllépés esetén az eseménykezelő egy névtelen
 függvényt hív meg, amely egy felugró ablakban tájékoztatja
 a felhasználót az időtúllépésről */
 
{{domxref("XMLHttpRequest.upload")}} {{readonlyinline}}
Minden XMLHttpRequest objektumhoz rendelkezik egy {{domxref("XMLHttpRequestUpload")}} objektummal, amely adatátviteli információk összegyűjtésére használható, amikor az adatok átkerülnek a kiszolgálóra. Az upload tulajdonság ezt adja vissza.
{{domxref("XMLHttpRequest.withCredentials")}}
Logikai érték ({{domxref("Boolean")}}), that indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies or authorization headers.

Nem szabványos tulajdonságok

{{domxref("XMLHttpRequest.channel")}}{{ReadOnlyInline}}
Is a {{Interface("nsIChannel")}}. The channel used by the object when performing the request.
{{domxref("XMLHttpRequest.mozAnon")}}{{ReadOnlyInline}}
Logikai érték ({{domxref("Boolean")}}). Ha értéke igaz (true), akkor a kérelem sütik és azonosító fejlécek nélkül lesz elküldve.
{{domxref("XMLHttpRequest.mozSystem")}}{{ReadOnlyInline}}
Logikai érték ({{domxref("Boolean")}}). If true, the same origin policy will not be enforced on the request.
{{domxref("XMLHttpRequest.mozBackgroundRequest")}}
Logikai érték ({{domxref("Boolean")}}). It indicates whether or not the object represents a background service request.
{{domxref("XMLHttpRequest.mozResponseArrayBuffer")}}{{gecko_minversion_inline("2.0")}} {{obsolete_inline("6")}} {{ReadOnlyInline}}
Egy ArrayBuffer  objektum. A válasz a kérelemre egy JavaScript-stílusú tömb lesz.
{{domxref("XMLHttpRequest.multipart")}}{{obsolete_inline("22")}}
This Gecko-only feature, a boolean, was removed in Firefox/Gecko 22. Please use Server-Sent Events, Web Sockets, or responseText from progress events instead.

Eseménykezelők

Az onreadystatechange az XMLHttpRequest objektum olyan tulajdonsága, amely mindig meghívódik, amikor a readyState tulajdonság értéke megváltozik. Ezt az eseménykezelőt az összes böngésző támogatja.

A különböző böngészők által támogatott eseménykezelők száma egyre nagyobb (onload, onerror, onprogress, stb.). Ezeket a Firefox is mind támogatja. További információk az nsIXMLHttpRequestEventTarget objektumról és az XMLHttpRequest használatáról.

Az újabb böngészők (mint a Firefox is), támogatják az XMLHttpRequest események szabványos addEventListener általi figyelését. Az API ezen felül bekapcsolt (on*) értékre állítja a tulajdonságokat a kezelő függvényben.

Metódusok

{{domxref("XMLHttpRequest.abort()")}}
Megszakítja az aktuális kérelmet.
{{domxref("XMLHttpRequest.getAllResponseHeaders()")}}
A válasz összes fejlécét adja vissza egyszerű szövegként, \r\n (CRLF) sorvég karakterekkel elválasztva. Ha nem érkezett válasz a kérelemre, null értékkel tér vissza.
{{domxref("XMLHttpRequest.getResponseHeader()")}}
A paraméterül kapott fejléc szöveges értékével tér vissza siker esetén, vagy null-al, ha nem érkezett válasz a kérelemre vagy a kért fejléc nem található a válaszban.
  xhr.getResponseHeader("Content-Type");
  
{{domxref("XMLHttpRequest.open()")}}
Inicializálja az elküldendő kérelmet. Beállítja a kérelem továbbítására használt metódust (ez lehet post vagy get), a cél URL-t (a kérelmet fogadó/feldolgozó távoli állomány elérési útját) és az aszinkron kapcsolót (true = aszinkron[alapértelmezett], false = szinkron). Opcionálisan megadható paraméterek: felhasználónév és jelszó. Ezt az eljárást JavaScript kódból lehet meghívni, natív kódból az openRequest() eljárás ajánlott helyette.
  xhr.open("POST","feldolgoz.php", true);
  
{{domxref("XMLHttpRequest.overrideMimeType()")}}
Felülbírálja a kiszolgáló által visszaadott MIME típust.
{{domxref("XMLHttpRequest.send()")}}
Kérelem elküldése. Ha a kérelem aszinkron (ez az alapértelmezett), az eljárás visszatér, amint a kérelem el lett küldve.
{{domxref("XMLHttpRequest.setRequestHeader()")}}
A post metódussal elküldött HTTP kérelem fejlécét állítja be. Két bemeneti paramétert vár: a fejléc nevét és értékét. A setRequestHeader() eljárást az open() után, de a send() előtt kell meghívni.
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  

Nem szabványos metódusok

{{domxref("XMLHttpRequest.init()")}}
C++ kódból történő használatra inicializálja az objektumot.
Figyelmeztetés: Ezt a metódust nem szabad JavaScript-ből meghívni.
{{domxref("XMLHttpRequest.openRequest()")}}
Inicializálja a kérelmet. Ezt az eljárást natív kódból lehet használni a kérelem inicializálására, az open() helyett. További részletek az open() leírásában.
{{domxref("XMLHttpRequest.sendAsBinary()")}}{{deprecated_inline()}}
A send() egy változata, ami bináris adatokat küld.

Specifikációk

Specifikáció Állapot Megjegyzés
{{SpecName('XMLHttpRequest')}} {{Spec2('XMLHttpRequest')}} Hatályos szabvány, aktuális változat

Böngésző támogatottság

{{Compat("api.XMLHttpRequest")}}

Hivatkozások