Mozilla on all platforms,Internet Explorer on Windows, Safari on Mac OS-X, Konqueror in KDE, IceBrowser on Java, and Opera on all platforms including Symbian provide a method for client side javascript to make HTTP requests. From the humble begins as an oddly named object with few admirers, it's blossomed to be the core technology in something called AJAX [1].
A D V E R T I S E M E N T
Why XML HTTP Request object?
The XML HTTP Request object is not limited to being used with XML, it can request or send any type of document, although dealing with binary streams can be problematical in javascript.
What is an HTTP Request?
Through HTTP request a web page make a request get a response from a web server - without reloading the page. The user will stay on the same page, and he or she will not notice that scripts might request pages, or send data to a server in the background.
Through XMLHttpRequest object, a web developer can change a page with data from the server after the page has loaded.
Google Suggest is using the XMLHttpRequest object to create
a very dynamic web interface: When you start typing in Google's
search box, a JavaScript sends the letters off to a server and
the server returns a list of suggestions.
Whether XMLHttpRequest Object a W3C Standard?
No, XMLHttpRequest object is not a W3C standard.
The W3C DOM Level 3 "Load and Save" specification contains
some similar functionality, but these are not implemented in any
browsers yet. So, at the moment XMLHttpRequest
object needed to send an HTTP
request from a browser.
How to Create an XMLHttpRequest Object
In Internet Explorer, Depending on the version of MSXML installed
you create the object using new ActiveXObject("Msxml2.XMLHTTP")
or new ActiveXObject("Microsoft.XMLHTTP"). In Mozilla and Safari you
use new XMLHttpRequest() IceBrowser uses yet another method the
window.createRequest() method.
This means that you need to show different script to different browsers, as what
works in one, will error in another. The script below does this, and if it's not
supported, the variable is set to false to allow for appropriate error messages
and recovery with degrading to more normal HTTP transaction methods when the
object isn't available. This degradation is important, even in IE the objects
can often be blocked by slightly raised security settings (popular due to the
commonly exploited holes of course). Where possible degrade, some approaches are
talked about below, if you really can't, I'd recommend providing an alternative
page aswell. GMail for example has said they'll be providing a less demanding
version in the future, hopefully with no javascript at all, full degradation.
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
} catch (e) {
xmlhttp=false;
}
}
To make a HTTP request ?
To make a HTTP request you tell the XML HTTP request object
what sort of HTTP request you want and which url you want to request.
Provide a function to be called when as the request is being made, and finally
what, (if any) information you want sent along in the body of the request.
The following script makes a GET request for the relative url "text.txt"
(relative to the calling page) It provides the function, which checks the
readyState property each time it's called and when it has the value 4 - meaning
the load is complete, it displays the responseText to the user with an alert.
Returns the complete set of http headers as a string
getResponseHeader("headername")
Returns the value of the specified http header
open("method","URL",async,"uname","pswd")
Specifies the method, URL, and other optional
attributes of a request
The method parameter can have a value of "GET",
"POST", or "PUT" (use "GET" when requesting data and use
"POST" when sending data (especially if the length of
the data is greater than 512 bytes.
The URL parameter may be either a relative or
complete URL.
The async parameter specifies whether the request
should be handled asynchronously or not. true means that
script processing carries on after the send() method,
without waiting for a response. false means that the
script waits for a response before continuing script
processing
send(content)
Sends the request
setRequestHeader("label","value")
Adds a label/value pair to the http header to be
sent
Properties
Property
Description
onreadystatechange
An event handler for an event that fires at every
state change
Returns the response as XML. This property returns
an XML document object, which can be examined and parsed
using W3C DOM node tree methods and properties
status
Returns the status as a number (e.g. 404 for "Not
Found" or 200 for "OK")
statusText
Returns the status as a string (e.g. "Not Found" or
"OK")
Share And Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
Keywords: xmlhttprequest object, xmlhttprequest ajax, javascript xmlhttprequest,
xml http request,
xml http request object,
http content type,
http content length,
asp net http request,
http keep alive,
http user agent,
http web server,
asp net xml,
request content length,
internet explorer xml,
request user agent,
request content type,
http internet explorer,
request asp net,
http asp net,
http xml request.