JavaScript Learning Ajax

 

AJAX is a technique for creating faster, and more interactive web applications with the help of XML, HTML, CSS, and JavaScript. It is a web browser technology which is independent of web server software.

AJAX use of the built-in browser XMLHttpRequest (XHR) objects to send and receive information to and from a web server asynchronously, in the background, without blocking the page or interfering with the user's experience.

  • AJAX = Asynchronous JavaScript And XML.
  • Update a web page without reloading the page
  • Request data from a server - after the page has loaded
  • Receive data from a server - after the page has loaded
  • Send data to a server - in the background

XMLHttpRequest Object: The XMLHttpRequest object can be used to exchange data with a server behind the scenes. This means that it is possible to update parts of a web page, without reloading the whole page.

let xhttp = new XMLHttpRequest();

Old versions of Internet Explorer (IE5 and IE6)

 variable = new ActiveXObject("Microsoft.XMLHTTP");
            if (window.XMLHttpRequest) {
                // code for modern browsers
                xmlhttp = new XMLHttpRequest();
             } else {
                // code for old IE browsers
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }

Send a Request To a Server: To send a request to a server, we use the open() and send() methods of the XMLHttpRequest object:

 xhttp.open("GET", "ajax_info.txt", true);
            xhttp.send();
            // post
            xhttp.open("POST", "ajax_info.txt", true);
            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhttp.send()

setRequestHeader : setRequestHeader(header, value) Adds HTTP headers to the request. header: specifies the header name value: specifies the header value

xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhttp.getResponseHeader('Content-type', 'application/json');

onreadystatechange Property: With the XMLHttpRequest object you can define a function to be executed when the request receives an answer. The function is defined in the onreadystatechange property of the XMLHttpResponse object:

xhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                  document.getElementById("demo").innerHTML = this.responseText;
                }
              };
              xhttp.open("GET", "ajax_info.txt", true);
              xhttp.send();
new XMLHttpRequest() Creates a new XMLHttpRequest object
abort() Cancels the current request
getAllResponseHeaders() Returns header information
getResponseHeader() Returns specific header information
open(method,url,async,user,psw) Specifies the request method: the request type GET or POST url: the file location async: true (asynchronous) or false (synchronous) user: optional user name psw: optional password
send() Sends the request to the server Used for GET requests
send(string) Sends the request to the server. Used for POST requests
setRequestHeader() Adds a label/value pair to the header to be sent
onreadystatechange Defines a function to be called when the readyState property changes
readyState Holds the status of the XMLHttpRequest
  • 0: request not initialized
  • 1: server connection established
  • 2: request received
  • 3: processing request
  • 4: request finished and response is ready
responseText Returns the response data as a string
responseXML Returns the response data as XML data
status Returns the status-number of a request
  • 200: "OK"
  • 403: "Forbidden"
  • 404: "Not Found"
statusText Returns the status-text (e.g. "OK" or "Not Found")

Comments