The XMLHttpRequest object is used to exchange data with a server asynchronously without reloading the page. It creates an XMLHttpRequest object using new XMLHttpRequest() or new ActiveXObject for older browsers, and sends a request to the server using open() and send() methods. The onreadystatechange event handler processes the server response when readyState changes to 4. The response is retrieved using responseText or responseXML properties. AJAX can be used to dynamically update parts of a page or retrieve data from a server database without reloading.