XMLHttpRequest (kurz: XHR) ist eine Programmierschnittstelle für JavaScript zum Übertragen von Daten über HTTP. Entgegen dem Namen muss es sich bei diesen Daten nicht um XML handeln. XMLHttpRequest bildet einen Grundbaustein der Ajax-Technik.
XMLHttpRequest ermöglicht es einem Skript einer Webseite, Daten dynamisch vom Webserver abzurufen, ohne dass dazu die HTML-Seite neu geladen werden müsste. Dies war zuvor nur durch den Einsatz unsichtbarer HTML-Frames oder IFrames oder mit dynamisch nachgeladenen Skript-Dateien möglich.[1] Da beim XMLHttpRequest-Verfahren Daten asynchron verarbeitet werden können, muss ein Skript nicht warten, bis die Anfrage beantwortet ist, sondern kann sich so lange anderen Aufgaben zuwenden.
Es können HTTP-Verfahren wie Anfragemethoden, Authentifizierung und Caching verwendet werden. Wenn eine Anfrage XML-Daten liefert, kann XMLHttpRequest diese alternativ als Text oder als DOM-Baumstruktur zurücksenden. Letzteres eignet sich beispielsweise dazu, mit Webservices zu kommunizieren.
Mit der Einführung von Web Workers wurde XHR durch die Fetch API abgelöst.[2][3]