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 Juli 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 Anhängen von Ereignis-Listenern an dieses Objekt verhindert, dass die Anfrage eine "einfache Anfrage" bleibt, und wird bei Cross-Origin einen Preflight-Request auslösen; siehe CORS. Aus diesem Grund müssen Ereignis-Listener registriert werden, bevor send()
aufgerufen wird, ansonsten werden Upload-Ereignisse nicht ausgelöst.
Hinweis:
Die Spezifikation scheint auch anzugeben, dass Ereignis-Listener nach open()
angehängt werden sollten. Allerdings sind Browser in dieser Hinsicht fehlerhaft und oft müssen die Listener vor open()
registriert werden, um zu funktionieren.
Die folgenden Ereignisse können auf einem Upload-Objekt ausgelöst werden und verwendet werden, um den Upload zu überwachen:
Ereignis | Beschreibung |
---|---|
[`loadstart`](/de/docs/Web/API/XMLHttpRequestEventTarget/loadstart_event) | Der Upload hat begonnen. |
[`progress`](/de/docs/Web/API/XMLHttpRequestEventTarget/progress_event) | Wird regelmäßig geliefert, um den bisher fortgeschrittenen Fortschritt anzuzeigen. |
[`abort`](/de/docs/Web/API/XMLHttpRequestEventTarget/abort_event) | Der Upload-Vorgang wurde abgebrochen. |
[`error`](/de/docs/Web/API/XMLHttpRequestEventTarget/error_event) | Der Upload ist aufgrund eines Fehlers fehlgeschlagen. |
[`load`](/de/docs/Web/API/XMLHttpRequestEventTarget/load_event) | Der Upload wurde erfolgreich abgeschlossen. |
[`timeout`](/de/docs/Web/API/XMLHttpRequestEventTarget/timeout_event) | Der Upload ist abgelaufen, weil innerhalb des durch [`XMLHttpRequest.timeout`](/de/docs/Web/API/XMLHttpRequest/timeout) festgelegten Zeitintervalls keine Antwort eingegangen ist. |
[`loadend`](/de/docs/Web/API/XMLHttpRequestEventTarget/loadend_event) |
Der Upload ist beendet. Dieses Ereignis unterscheidet nicht zwischen
Erfolg oder Fehlschlag und wird am Ende des Uploads gesendet, unabhängig
vom Ergebnis. Vor diesem Ereignis wurde bereits eines der Ereignisse
load , error , abort oder
timeout geliefert, um anzugeben, warum der Upload
beendet wurde.
|