How to make PUT request using XMLHttpRequest by making Custom HTTP library ? Last Updated : 15 Jul, 2025 Comments Improve Suggest changes Like Article Like Report The task is to show how the XMLHttpRequest can be used to PUT/Update data to an API by making custom HTTP library. We will be taking a fake API which will contain Array of objects as an example and from that API we will show to PUT data by XMLHttpRequest method by making a custom HTTP library.Used API: https://jsonplaceholder.typicode.com/posts/5What is Ajax? Asynchronous JavaScript and XML, is used to communicate with the server without refreshing the web page and thus increasing the user experience and better performance. To read more about Ajax click on https://www.geeksforgeeks.org/javascript/ajax-introduction/Prerequisites: Only the basic knowledge of HTML, CSS, and JavaScript is required.Note: First make a HTML file and add the HTML markup according to the requirement. In the bottom of the body tag attach two scripts file as library.js and app.js in the same order.Steps required to make library.js File: library.js file make a function easyHTTP to initialize a new XMLHttpRequest() method.Set easyHTTP.prototype.put to a function which contains three parameters 'url', data and callback.Now open an object using this.http.open function. It takes three parameters, the first one is request type (GET or POST or PUT or DELETE), second is the URL for the API and last one is a boolean value (true means asynchronous call and false means synchronous call).Now we will use onload function to display the data. But before that first we need to set content-type with this.http.setRequestHeader method and also assign this keyword to self to have scope of this keyword into onload function. The onload function is executed after the API call is done. This function will run a callback function which has two arguments as error and response text.Last step is to send the request using the send() function. It should be noted here that send() function needs to send data after converting object data to string using JSON.stringify(data). Steps required to make app.js File: First of all instantiate easyHTTP with new keyword.Create a custom data (object) to put/update data.Pass URL, data and a callback function in put prototype function.The callback function contains two arguments error to print if any error occurs and response to get the actual response. Filename: index.html html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> <title>Put request</title> </head> <body> <h1> Put request using xmlhttpRequest/Ajax by making custom HTTP library. </h1> <div class="result"></div> <!-- Including library.js and app.js files --> <script src="library.js"></script> <script src="app.js"></script> </body> </html> Filename: library.js javascript function easyHTTP() { // Initializing new XMLHttpRequest method. this.http = new XMLHttpRequest(); } // Make an HTTP PUT Request easyHTTP.prototype.put = function(url, data, callback) { // Open an object (POST, PATH, ASYNC-TRUE/FALSE) this.http.open('PUT', url, true); // Set content-type this.http.setRequestHeader( 'Content-type', 'application/json'); // Assigning this to self to have // scope of this into the function onload let self = this; // When response is ready this.http.onload = function() { // Callback function (Error, response text) callback(null, self.http.responseText); } // Since the data is an object so // we need to stringify it this.http.send(JSON.stringify(data)); } Filename: app.js javascript // Instantiating easyHTTP const http = new easyHTTP; // Data that we need to update const data = { title: 'Custom Putt', body: 'This is a custom put' }; // Put prototype method(url, data, // response text) http.put( 'https://jsonplaceholder.typicode.com/posts/5', data, function(err, post){ if(err) { console.log(err); } else { console.log(post); } }); Output: Open your index.html file in any browser and open its console by right click->Inspect element->console. Hence you will see the below result. Create Quiz Comment T thacker_shahid Follow 0 Improve T thacker_shahid Follow 0 Improve Article Tags : JavaScript JavaScript-Misc Node.js-Misc Explore JavaScript BasicsIntroduction to JavaScript4 min readVariables and Datatypes in JavaScript6 min readJavaScript Operators5 min readControl Statements in JavaScript4 min readArray & StringJavaScript Arrays7 min readJavaScript Array Methods7 min readJavaScript Strings5 min readJavaScript String Methods9 min readFunction & ObjectFunctions in JavaScript5 min readJavaScript Function Expression3 min readFunction Overloading in JavaScript4 min readObjects in JavaScript4 min readJavaScript Object Constructors4 min readOOPObject Oriented Programming in JavaScript3 min readClasses and Objects in JavaScript4 min readWhat Are Access Modifiers In JavaScript ?5 min readJavaScript Constructor Method7 min readAsynchronous JavaScriptAsynchronous JavaScript2 min readJavaScript Callbacks4 min readJavaScript Promise4 min readEvent Loop in JavaScript4 min readAsync and Await in JavaScript2 min readException HandlingJavascript Error and Exceptional Handling6 min readJavaScript Errors Throw and Try to Catch2 min readHow to create custom errors in JavaScript ?2 min readJavaScript TypeError - Invalid Array.prototype.sort argument1 min readDOMHTML DOM (Document Object Model)8 min readHow to select DOM Elements in JavaScript ?3 min readJavaScript Custom Events4 min readJavaScript addEventListener() with Examples9 min readAdvanced TopicsClosure in JavaScript4 min readJavaScript Hoisting6 min readScope of Variables in JavaScript3 min readJavaScript Higher Order Functions7 min readDebugging in JavaScript4 min read Like