Code

 

创建XmlHttpRequest对象

注意事项:

由于XMLHttpRequest对象还不是W3C的标准,不同浏览器中其实现的方式是不同的.

在 IE 7 以前的版本中,XMLHttpRequest对象是以ActiveX 组件实现的,而在Firefox、Opera等浏览器中 XMLHttpRequest对象是作为浏览对象来提供的。值得庆幸的是,IE 7 中XMLHttpRequest对象可以作为浏览器对象使用,从而实现XMLHttpRequest对象创建的统一。

在较老版本的IE中创建XMLHttpRequest对象的基本语法格式为:

var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

在较新版本的IE中创建XMLHttpRequest对象的基本语法格式为:

var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

而在 IE 7 以及其他非IE浏览器中使用如下语法格式创建XMLHttpRequest对象的基本语法格式为:

var xmlHttp=new XmlHttpRequest();

 由于在不同浏览器中XMLHttpRequest对象的创建方式不同,在实际开发过程中必须考虑代码的兼容性。

 

使用 XMLHttpRequest对象 发送请求

1,打开请求

xmlHttp为一个XMLHttpRequest对象实例

xmlHttp.open(method,url,[async],[user],[password]);

 method: 字符串类型数据,表示http请求方法的类型,例如:POST、GET、PUT  不区分大小写。

 url: 字符串类型数据,表示请求的URL地址,可以为绝对地址也可以为相对地址。

async:参数可选,布尔类型数据,指定此请求是否为异步方式,默认为true,如果为真,当状态改变时会调用onreadystatechange属性指定回调函数。

user:参数可选,字符串类型数据,如果服务器需要验证,此出指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。

password:参数可选,字符串类型数据,指定验证信息中的密码,如果用户名为空,则此值将被忽略。

 

2,发送请求

使用OPEN方法打开请求之后,就可以发送请求了。

xmlHttp.send(body);

body 就是发送的内容

send方法的同步或异步方式取决于open方法中的async参数,如过async为false,此方法将会等待请求完成或者超时时才会返回。如果open方法的async参数为true,次方法将立即返回。

如果使用POST方法发送亲,那么在使用send方法发送请求之前必须使用XMLHttpRequest对象的setRequestHeader方法按照如下方式设置HTTP头信息:

xmlHttp:setRequestHeader("Content-type","appliction/x-www-form-urlencoded");

使用GET请求传输的数据量较小,一般不超过2KB。使用POST请求传输的数据量可以认为是不受限制的,但往往受到服务器的限制。而且使用GET请求其参数被附加在URL地址后面,缺少案例安全性。所以建议使用POST 请求而不使用GET请求。

虽然使用POST请求和GET请求都可以将参数附加在URL地址后面,但是在发送请求时,还是应该为send方法传入一个null作为参数。如果使用不带参数的send方法发送请求,在Firefox浏览器中将不能正常运行。

 3,设置回调函数(onreadystatechange)

异步的原因:

用户在一个操作层上面操作页面,而服务器在另一个操作层上响应请求,并触发onreadystatechange属性指定回调方法。 

posted on 2008-12-16 14:50  poop  阅读(386)  评论(1编辑  收藏  举报