XMLHttpRequest: upload-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Hinweis: Diese Funktion ist in Web Workers verfügbar, mit Ausnahme von Service Workers.

Die XMLHttpRequest upload-Eigenschaft gibt ein XMLHttpRequestUpload-Objekt zurück, das beobachtet werden kann, um den Fortschritt eines Uploads zu überwachen.

Es ist ein undurchsichtiges Objekt, aber da es auch ein XMLHttpRequestEventTarget ist, können Ereignis-Listener angehängt werden, um seinen Prozess zu verfolgen.

Hinweis: Das Anfügen von Ereignis-Listenern an dieses Objekt verhindert, dass die Anfrage eine "einfache Anfrage" bleibt und führt dazu, dass eine Preflight-Anfrage gesendet wird, wenn sie über mehrere Ursprünge hinweg erfolgt; siehe CORS. Aus diesem Grund müssen Ereignis-Listener registriert werden, bevor send() aufgerufen wird, andernfalls werden Upload-Ereignisse nicht ausgelöst.

Hinweis: Die Spezifikation scheint auch darauf hinzuweisen, dass Ereignis-Listener nach open() angehängt werden sollten. Allerdings verhalten sich Browser in dieser Angelegenheit fehlerhaft und benötigen oft, dass die Listener vor open() registriert werden, um zu funktionieren.

Die folgenden Ereignisse können an einem Upload-Objekt ausgelöst werden und zur Überwachung des Uploads verwendet werden:

Ereignis Beschreibung
[`loadstart`](/de/docs/Web/API/XMLHttpRequestUpload/loadstart_event) Der Upload hat begonnen.
[`progress`](/de/docs/Web/API/XMLHttpRequestUpload/progress_event) Wird periodisch bereitgestellt, um den bisher erzielten Fortschritt anzuzeigen.
[`abort`](/de/docs/Web/API/XMLHttpRequestUpload/abort_event) Der Upload-Vorgang wurde abgebrochen.
[`error`](/de/docs/Web/API/XMLHttpRequestUpload/error_event) Der Upload ist aufgrund eines Fehlers fehlgeschlagen.
[`load`](/de/docs/Web/API/XMLHttpRequestUpload/load_event) Der Upload wurde erfolgreich abgeschlossen.
[`timeout`](/de/docs/Web/API/XMLHttpRequestUpload/timeout_event) Der Upload ist zeitlich abgelaufen, weil keine Antwort innerhalb des durch die [`XMLHttpRequest.timeout`](/de/docs/Web/API/XMLHttpRequest/timeout) angegebenen Zeitraums eingegangen ist.
[`loadend`](/de/docs/Web/API/XMLHttpRequestUpload/loadend_event) Der Upload ist abgeschlossen. Dieses Ereignis unterscheidet nicht zwischen Erfolg oder Misserfolg und wird am Ende des Uploads unabhängig vom Ergebnis gesendet. Vor diesem Ereignis wird bereits eines der Ereignisse load, error, abort oder timeout ausgelöst worden sein, um anzugeben, warum der Upload beendet wurde.

Spezifikationen

Specification
XMLHttpRequest
# the-upload-attribute

Browser-Kompatibilität

Siehe auch