How can JavaScript upload a blob ?

There are many ways to upload a blob (a group of bytes that holds the data stored in a file) in JavaScript, using XMLHttpRequest, Fetch API, jQuery. In this tutorial, we will discuss the two most common ways that are supported by a majority of the browsers.
Note: To test our HTTP request, you can use minimal express server. You can also use any online testing tool like webhook.site.
Fetch API: The Fetch API allows web browsers to send and receive data from the servers through HTTP requests. It is an easy-to-use version of XMLHttpRequest. The fetch() method returns a Promise which then can be chained with then() and catch() for better error handling. It is supported by all the modern browsers except IE.
Syntax:
fetch( url, // API endpoint
{
method:"", // HTTP Method (GET, POST, PUT, DELETE)
body: {}, // Data to be sent
}).then(response => {
// handle the response
})
.catch(e => {
// handle the error
});
Example:
JavaScript
<script> function uploadBlob() { const blob = new Blob( ["This is some important text"], { type: "text/plain" } ); // Creating a new blob // Hostname and port of the local server // HTTP request type method: "POST", // Sending our blob with our request body: blob }) .then(response => alert('Blob Uploaded')) .catch(err => alert(err)); } document.addEventListener('load', uploadBlob()) </script> |
Output:
AJAX: It is a set of web applications that can send and retrieve data from a server asynchronously without reloading the current page. Please import or load jQuery before calling the ajax function.
Syntax:
$.ajax({
url: "", // API Endpoint
type: "", // HTTP Method (GET, POST, PUT, DELETE)
data: {}, // Data to be sent
// Specifies how the form-data should be encoded
enctype: 'multipart/form-data',
success: function(data) {
// Handle the response
}, error: function(e) {
// Handle the error
}
});
Example:
HTML
<!DOCTYPE html> <html lang="en"> <head> <script src= </script> </head> <body> <script> function uploadBlob() { const blob = new Blob( ["This is some important text"], { type: "text/plain" } ); // Creating a new blob $.ajax({ // Hostname and port of the local server url: "http://localhost:3000/", // HTTP request type type: "POST", // Sending blob with our request data: blob, processData: false, contentType: false, success: function (data) { alert('Blob Uploaded') }, error: function (e) { alert(e); } }); } $(document).on('load', uploadBlob()); </script> </body> </html> |
Output:




