======================================================
注:本文源代码点此下载
======================================================
ajax 的要点是 xmlhttprequest 对象。不同的浏览器创建 xmlhttprequest 对象的方法是有差异的。ie 浏览器使用 activexobject,而其他的浏览器使用名为 xmlhttprequest
的 javascript 内建对象。
1,创建xmlhttprequest.
1 function getxmlhttp(){
2var xmlhttp;
3try{
4// firefox, opera 8.0+, safari
5xmlhttp=new xmlhttprequest();
6}catch (e){
7// internet explorer
8try{
9xmlhttp=new activexobject("msxml2.xmlhttp");
10}catch (e){
11try{
12xmlhttp=new activexobject("microsoft.xmlhttp");
13}catch (e){
14alert("您的浏览器不支持ajax!");
15return null;
16}
17}
18}
19return xmlhttp;
20 }
2,xmlhttprequest与服务器的通信。
在向服务器发送数据之前,我们有必要解释一下 xmlhttprequest 对象的三个重要的属性。
onreadystatechange 属性:该属性存有处理服务器响应的函数。
readystate属性:该属性存有服务器响应的状态信息。每当 readystate 改变时,onreadystatechange 函数就会被执行。readystate可能的值如下:
0--请求未初始化(在调用 open() 之前)
1--请求已提出(调用 send() 之前)
2--请求已发送(这里通常可以从响应得到内容头部)
3--请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4--请求已完成(可以访问服务器响应并使用它)
如下列代码在请求完成时获取返回数据并填充到表单myform的文本框time中:
1 xmlhttp.onreadystatechange=function()
2{
3if(xmlhttp.readystate==4)
4{
5document.myform.time.value=xmlhttp.responsetext;
6}
7}
8
要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法。
open() 方法需要三个参数。第一个参数定义发送请求所使用的方法(get 还是 post)。第二个参数规定服务器端脚本的 url。第三个参数规定应当对请求进行异步地处理。
send() 方法可将请求送往服务器。
1 xmlhttp.open("get","time.asp",true);
2 xmlhttp.send(null);
3
post请求方法实例:
1 /*
2 @params:
3 url:提交字符串
4 params:参数,形如:a=1&c=2
5 */
6 function postrequest(url,params){
7xmlhttp=getxmlhttp();
8xmlhttp.onreadystatechange = handleresponse;
9xmlhttp.open("post",url,true);
10xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded"); //设置服务器响应请求体参数
11xmlhttp.send(params);
12 }
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/