Skip to content

Instantly share code, notes, and snippets.

@gurdotan
Last active December 17, 2015 20:48
Show Gist options
  • Save gurdotan/5669730 to your computer and use it in GitHub Desktop.
Save gurdotan/5669730 to your computer and use it in GitHub Desktop.
XHR2 file upload + jQuery deferred
var uploadFormAndFile = function(form, file) {
var formData = new FormData();
formData.append("email", form.email);
formData.append("name", form.name);
formData.append("thumbnail", file);
var uploadDeferred = $.Deferred(),
xhr = new XMLHttpRequest();
xhr.open('POST', "http://some.url/upload", true);
xhr.addEventListener("progress", function(event) {
uploadDeferred.notify(event);
});
xhr.addEventListener("load", function(event) {
uploadDeferred.resolve(event);
});
xhr.addEventListener("error", function(event) {
uploadDeferred.reject(event);
});
// Send request
xhr.send(formData);
return uploadDeferred.promise();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment