Note: This feature is available in Web Workers, except for Service Workers.
The load event is fired when an XMLHttpRequest transaction completes successfully.
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("load", (event) => { })
onload = (event) => { }A ProgressEvent. Inherits from Event.
<div class="controls">
<input
class="xhr success"
type="button"
name="xhr"
value="Click to start XHR (success)" />
<input
class="xhr error"
type="button"
name="xhr"
value="Click to start XHR (error)" />
<input
class="xhr abort"
type="button"
name="xhr"
value="Click to start XHR (abort)" />
</div>
<textarea readonly class="event-log"></textarea>const xhrButtonSuccess = document.querySelector(".xhr.success");
const xhrButtonError = document.querySelector(".xhr.error");
const xhrButtonAbort = document.querySelector(".xhr.abort");
const log = document.querySelector(".event-log");
function handleEvent(e) {
log.textContent = `${log.textContent}${e.type}: ${e.loaded} bytes transferred\n`;
}
function addListeners(xhr) {
xhr.addEventListener("loadstart", handleEvent);
xhr.addEventListener("load", handleEvent);
xhr.addEventListener("loadend", handleEvent);
xhr.addEventListener("progress", handleEvent);
xhr.addEventListener("error", handleEvent);
xhr.addEventListener("abort", handleEvent);
}
function runXHR(url) {
log.textContent = "";
const xhr = new XMLHttpRequest();
addListeners(xhr);
xhr.open("GET", url);
xhr.send();
return xhr;
}
xhrButtonSuccess.addEventListener("click", () => {
runXHR("image.jpg");
});
xhrButtonError.addEventListener("click", () => {
runXHR("https://somewhere.org/i-dont-exist");
});
xhrButtonAbort.addEventListener("click", () => {
runXHR("image.jpg").abort();
});You can use the load event to detect the successful termination of an upload. For a complete code example that uploads a file and displays a progress bar, see the main XMLHttpRequestUpload page.
// When the upload is finished, we hide the progress bar.
xhr.upload.addEventListener("load", (event) => {
progressBar.classList.remove("visible");
log.textContent = "Upload finished.";
abortButton.disabled = true;
});