The XMLHttpRequest Object

XMLHttpRequest is an API that facilitates to and fro exchange of data between a client and a server. Here we explore the most commonly used properties and methods of the XMLHttpRequest object.



The onreadystatechange property has an event handler which is called everytime the readystatechange event is fired, which in turn is fired every time the readyState attribute of the XMLHttpRequest object changes.


The readyState attribute gives the state of the XMLHttpRequest client in integer values from 0 to 4. 0 - uninitialized. 1 - open() method called successfully; connection with server established. 2 - send() method called; HTTP response headers have been received. 3 - data is being received; responseText property holds partial data. 4 - request operation for transfer of data from the server is completed.


status property returns standard HTTP status codes. For example, status value of 200 denotes "Ok" and 404 "Not Found".


responseText returns the response data as a string.


responseXML returns the response data as XML.



The open() method initializes HTTP/HTTPS requests of the XMLHttpRequest object and can accept upto five parameters.

						open(method, url, async, user, password);

The method parameter can have GET, POST, or HEAD values. The url parameter is the URL to send the request to, either absolute or relative. The async parameter takes a Boolean value: true for asynchronous requests and false for synchronous requests. The user parameter is the name of the user for authentication, but is optional. By default, it is an empty string. The password parameter is another optional parameter for authentication which, by default, is also an empty string.


The send() method sends the request to the server. For GET method, there is no parameter required. But to send data with the request using the POST method, a single parameter containing the data has to be passed to send(), for example, send(name=Spock&planet=Vulcan).