|
XMLHttpRequest Object in Different Browsers
Listing 1. Accounting for differences in how browsers use the XMLHttpRequest object can be painful. This listing shows a simple cross-browser example of how you can make AJAX requests using the XMLHttpRequest object. The complete code for this example is available in the article's code download. <script type="text/javascript">
var xmlHttp = null;
function Add()
{
var x = document.getElementById("txtX").value;
var y = document.getElementById("txtY").value;
//Create params string to be posted to server
var params = encodeURI("x=" + x + "&y=" + y);
xmlHttp = GetXmlHttp("POST","XmlHttpHandler.ashx");
xmlHttp.onreadystatechange = OnStateChange;
xmlHttp.send(params);
}
function OnStateChange()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
document.getElementById("lblResult").innerHTML =
xmlHttp.responseText;
}
}
}
function GetXmlHttp(verb,url)
{
var request = null;
//Create XmlHttpxmlHttp object
var ua = navigator.userAgent.toLowerCase();
if (window.XMLHttpRequest) //IE7, Safari, Mozilla
{
request = new XMLHttpRequest();
}
else //IE5, IE6
{
if (ua.indexOf('msie 5') == -1)
request = new ActiveXObject("Msxml2.XMLHTTP");
else
request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open(verb.toUpperCase(),url,true);
if (verb.toUpperCase() == "POST")
request.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
return request;
}
</script>
|