A fordítás folyamatban van.

 

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.

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

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 XMLHttpRequestEventTarget és az EventTarget tulajdonságait is örökli.

XMLHttpRequest.onreadystatechange
Ez az 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);
    }
  };
 
XMLHttpRequest.readyState Read only
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
XMLHttpRequest.response Read only
A válasz törzsét tartalmazza, melynek típusát a XMLHttpRequest.responseType tulajdonság értéke határozza meg.
XMLHttpRequest.responseText Read only
Visszatérési értéke lehet DOMString amely egyszerű szövegként tartalmazza a választ az elküldött kérelemre, vagy null,ha a kérelem sikertelen volt.
XMLHttpRequest.responseType
A válasz típusát határozza meg, amely lehet:
XMLHttpRequest.responseURL Read only
Visszatérési értéke a válasz szerializált URL-je, vagy üres sztring, ha az URL értéke null.
XMLHttpRequest.responseXML Read only
Egy 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.
XMLHttpRequest.status Read only
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).
XMLHttpRequest.statusText Read only
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.

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.
XMLHttpRequestEventTarget.ontimeout
Ez egy EventHandler (eseménykezelő), amely a XMLHttpRequest.timeout tulajdonságban megadott idő túllépése esetén mindig meghívódik.
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 */
 
XMLHttpRequest.upload Read only
Minden XMLHttpRequest objektumhoz rendelkezik egy 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.
XMLHttpRequest.withCredentials
Logikai érték (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

XMLHttpRequest.channelRead only
Is a nsIChannel. The channel used by the object when performing the request.
XMLHttpRequest.mozAnonRead only
Logikai érték (Boolean). Ha értéke igaz (true), akkor a kérelem sütik és azonosító fejlécek nélkül lesz elküldve.
XMLHttpRequest.mozSystemRead only
Logikai érték (Boolean). If true, the same origin policy will not be enforced on the request.
XMLHttpRequest.mozBackgroundRequest
Logikai érték (Boolean). It indicates whether or not the object represents a background service request.
XMLHttpRequest.mozResponseArrayBuffer Obsolete since Gecko 6 Read only
Egy ArrayBuffer  objektum. A válasz a kérelemre egy JavaScript-stílusú tömb lesz.
XMLHttpRequest.multipartObsolete since Gecko 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.

Eljárások

XMLHttpRequest.abort()
Megszakítja az aktuális kérelmet.
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.
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");
  
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);
  
XMLHttpRequest.overrideMimeType()
Felülbírálja a kiszolgáló által visszaadott MIME típust.
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.
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 eljárások

XMLHttpRequest.init()
C++ kódból történő használatra inicializálja az objektumot.
Figyelmeztetés: Ezt az eljárást nem szabad JavaScript-ből meghívni.
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() eljárás helyett. További részletek az open() leírásában.
XMLHttpRequest.sendAsBinary()
A send() eljárás egy változata, ami bináris adatokat küld.

Specifikációk

Specifikáció Állapot Megjegyzés
XMLHttpRequest Living Standard Hatályos szabvány, aktuális változat

Böngésző támogatottság

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 1Edge Full support YesFirefox Full support 1IE Full support 7Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support 12Firefox Android Full support 4Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
onreadystatechangeChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 7
Notes
Full support 7
Notes
Notes Internet Explorer version 5 and 6 supported ajax calls using ActiveXObject()
Opera Full support YesSafari Full support 1.2WebView Android Full support 1Chrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
readyStateChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 7Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
responseChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
responseTextChrome Full support YesEdge Full support 12Firefox Full support YesIE ?
Notes
?
Notes
Notes Before IE 10, the value of XMLHttpRequest.responseText could be read only once the request was complete.
Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
responseTypeChrome Full support 31Edge Full support 12Firefox Full support 6IE Full support 10Opera Full support 18Safari Full support 7WebView Android Full support 55Chrome Android Full support 55Edge Mobile Full support YesFirefox Android Full support 50Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 6.0
responseURLChrome Full support 37Edge Full support 14Firefox Full support 32IE No support NoOpera Full support 24Safari Full support 8WebView Android Full support 37Chrome Android Full support 37Edge Mobile ? Firefox Android Full support 32Opera Android Full support 24Safari iOS ? Samsung Internet Android Full support Yes
responseXMLChrome Full support YesEdge Full support 12Firefox Full support Yes
Notes
Full support Yes
Notes
Notes Prior to Firefox 51, an error parsing the received data added a <parsererror> node to the top of the Document and then returned the Document in whatever state it happens to be in. This was inconsistent with the specification. Starting with Firefox 51, this scenario now correctly returns null as per the spec.
IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support Yes
Notes
Full support Yes
Notes
Notes Prior to Firefox 51, an error parsing the received data added a <parsererror> node to the top of the Document and then returned the Document in whatever state it happens to be in. This was inconsistent with the specification. Starting with Firefox 51, this scenario now correctly returns null as per the spec.
Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
statusChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 7
Notes
Full support 7
Notes
Notes Internet Explorer version 5 and 6 supported ajax calls using ActiveXObject()
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
statusTextChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 7
Notes
Full support 7
Notes
Notes Internet Explorer version 5 and 6 supported ajax calls using ActiveXObject()
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
timeoutChrome Full support 29Edge Full support 12Firefox Full support 12IE Full support 8Opera Full support 17
Full support 17
No support 12 — 16
Safari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
uploadChrome Full support 1Edge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support 18Edge Mobile ? Firefox Android ? Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
withCredentialsChrome Full support YesEdge Full support 12Firefox Full support 3.5
Notes
Full support 3.5
Notes
Notes Starting with Firefox 11, it's no longer supported to use the withCredentials attribute when performing synchronous requests. Attempting to do so throws an NS_ERROR_DOM_INVALID_ACCESS_ERR exception.
IE Full support 10
Notes
Full support 10
Notes
Notes Internet Explorer versions 8 and 9 supported cross-domain requests (CORS) using XDomainRequest
Opera Full support 12Safari Full support 4WebView Android Full support YesChrome Android Full support YesEdge Mobile ? Firefox Android Full support 4
Notes
Full support 4
Notes
Notes Starting with Firefox 11, it's no longer supported to use the withCredentials attribute when performing synchronous requests. Attempting to do so throws an NS_ERROR_DOM_INVALID_ACCESS_ERR exception.
Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
abortChrome Full support 18Edge Full support 12Firefox Full support YesIE Full support 7
Full support 7
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
getAllResponseHeadersChrome Full support 1Edge Full support 12Firefox Full support 4
Notes
Full support 4
Notes
Notes Starting from Firefox 49, empty headers are returned as empty strings in case the preference network.http.keep_empty_response_headers_as_empty_string is set to true, defaulting to false. Before Firefox 49 empty headers had been ignored. Since Firefox 50 the preference defaults to true.
IE Full support 7
Full support 7
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4
Notes
Full support 4
Notes
Notes Starting from Firefox 49, empty headers are returned as empty strings in case the preference network.http.keep_empty_response_headers_as_empty_string is set to true, defaulting to false. Before Firefox 49 empty headers had been ignored. Since Firefox 50 the preference defaults to true.
Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
getResponseHeaderChrome Full support 1Edge Full support 12Firefox Full support Yes
Notes
Full support Yes
Notes
Notes Starting from Firefox 49, empty headers are returned as empty strings in case the preference network.http.keep_empty_response_headers_as_empty_string is set to true, defaulting to false. Before Firefox 49 empty headers had been ignored. Since Firefox 50 the preference defaults to true.
IE Full support 7
Full support 7
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support Yes
Notes
Full support Yes
Notes
Notes Starting from Firefox 49, empty headers are returned as empty strings in case the preference network.http.keep_empty_response_headers_as_empty_string is set to true, defaulting to false. Before Firefox 49 empty headers had been ignored. Since Firefox 50 the preference defaults to true.
Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
openChrome Full support 1Edge Full support 12Firefox Full support Yes
Notes
Full support Yes
Notes
Notes Starting in Firefox 30, synchronous requests on the main thread have been deprecated due to their negative impact on performance and the user experience. Therefore, the async parameter may not be false except in a Worker.
IE Full support 7
Full support 7
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support Yes
Notes
Full support Yes
Notes
Notes Starting in Firefox 30, synchronous requests on the main thread have been deprecated due to their negative impact on performance and the user experience. Therefore, the async parameter may not be false except in a Worker.
Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
overrideMimeTypeChrome Full support 1Edge Full support 12Firefox Full support YesIE Full support 11
Full support 11
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
sendChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 7
Full support 7
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
sendAsBinary
DeprecatedNon-standard
Chrome No support No
Notes
No support No
Notes
Notes There is a polyfill available to support sendAsBinary().
Edge No support NoFirefox No support 2 — 31IE No support NoOpera No support NoSafari No support NoWebView Android No support No
Notes
No support No
Notes
Notes There is a polyfill available to support sendAsBinary().
Chrome Android No support No
Notes
No support No
Notes
Notes There is a polyfill available to support sendAsBinary().
Edge Mobile No support NoFirefox Android No support 4 — 31Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
setRequestHeaderChrome Full support 1Edge Full support 12Firefox Full support YesIE Full support 7
Full support 7
Full support 5
Notes
Notes Implemented via ActiveXObject
Opera Full support YesSafari Full support 1.2WebView Android Full support YesChrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.

Hivatkozások

Dokumentum címkék és a közreműködők

Ezen oldal közreműködői: mdnwebdocs-bot, fscholz, dominicus-75
Utoljára frissítve: mdnwebdocs-bot,