AJAX XmlHttpRequest

From http://www.w3schools.com (Copyright Refsnes Data)

# AJAX XMLHttpRequest

The XMLHttpRequest object makes AJAX possible.

## The XMLHttpRequest

The XMLHttpRequest object is the key to AJAX.

It has been available ever since Internet Explorer 5.5 was released in July 2000, but not fully discovered before people started to talk about AJAX and Web 2.0 in 2005.

## Creating An XMLHttpRequest Object

Different browsers use different methods to create an XMLHttpRequest object.

Internet Explorer uses an ActiveXObject.

Other browsers uses a built in JavaScript object called XMLHttpRequest.

Here is the simplest code you can use to overcome this problem:

    var XMLHttp=null;
    if (window.XMLHttpRequest)
      {
      XMLHttp=new XMLHttpRequest();
      }
    else if (window.ActiveXObject)
      {
      XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }

Example above explained:

1. First create a variable XMLHttp to use as your XMLHttpRequest object. Set the value to null.
2. Then test if the object window.XMLHttpRequest is available. This object is available in newer versions of Firefox, Mozilla, Opera, and Safari.
3. If it's available, use it to create a new object: XMLHttp=new XMLHttpRequest()
4. If it's not available, test if an object window.ActiveXObject is available. This object is available in Internet Explorer version 5.5 and later.
5. If it is available, use it to create a new object: XMLHttp=new ActiveXObject()

## A Better Example?

Some programmers will prefer to use the newest and fastest version of the XMLHttpRequest object.

The example below tries to load Microsoft's latest version "Msxml2.XMLHTTP", available in Internet Explorer 6, before it falls back to "Microsoft.XMLHTTP", available in Internet Explorer 5.5 and later.

    function GetXmlHttpObject()
    {
    var xmlHttp=null;

    try
     {
     // Firefox, Opera 8.0+, Safari
     xmlHttp=new XMLHttpRequest();
     }
    catch (e)
     {
     // Internet Explorer
     try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
     catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
     }
    return xmlHttp;
    }

Example above explained:

1. First create a variable XMLHttp to use as your XMLHttpRequest object. Set the value to null.
2. Try to create the object according to web standards (Mozilla, Opera and Safari):XMLHttp=new XMLHttpRequest()
3. Try to create the object the Microsoft way, available in Internet Explorer 6 and later:XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
4. If this catches an error, try the older (Internet Explorer 5.5) way: XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

## More about the XMLHttpRequest object

If you want to read more about the XMLHttpRequest, visit our AJAX tutorial.

From http://www.w3schools.com (Copyright Refsnes Data)