Ajax小示例
<script>
var Ajax; function CreateAjax() { if (window.XMLHttpRequest) { Ajax=new XMLHttpRequest(); } else if(window.ActiveXObject) { Ajax=new ActiveXObject("Microsoft.XMLHttp"); } } function SendData(url_,sendtext_) { Ajax.open("POST",url_,true); Ajax.onreadystatechange=checkuser; Ajax.send(sendtext_); } function CheckAjaxStatus(Ajax_) { if(Ajax_.readyState==4) if(Ajax_.status==200) return true; return false; } function checkuser() { if(!CheckAjaxStatus(Ajax_)) return; } function checkusername() { CreateAjax(); SendData("ajaxusername.jsp","username="+name); } </script> 解析: 一.XMLHttpRequest的属性和方法: abort():停止当前请求 getAllResponseHeaders():把所有Http请求的响应首部作为键值对返回 getResponseHeader("header"):返回指定首部的串值 void open(string method,string url,boolean asynch,string username,string password):这个方法会建立对服务器的调用。这是初始化一个请求的纯脚本方法。它有两个必要的参数,还有3个可选参数。要提供调用的特定方法(GET、POST或PUT),还要提供所调用资源的URL。另外还可以传递一个Boolean值,指示这个调用是异步的还是同步的。默认值为true,表示请求本质上是异步的。如果这个参数为false,处理就会等待,直到从服务器返回响应为止。由于异步调用是使用Ajax的主要优势之一,所以倘若将这个参数设置为false,从某种程度上讲与使用XMLHttpRequest对象的初衷不太相符。不过,前面已经说过,在某些情况下这个参数设置为false也是有用的,比如在持久存储页面之前可以先验证用户的输入。最后两个参数不说自明,允许你指定一个特定的用户名和密码。 void send(content):这个方法具体向服务器发出请求。如果请求声明为异步的,这个方法就会立即返回,否则它会等待直到接收到响应为止。可选参数可以是DOM对象的实例、输入流,或者串。传入这个方法的内容会作为请求体的一部分发送。 void setRequestHeader(string header,string value):这个方法为HTTP请求中一个给定的首部设置值。它有两个参数,第一个串表示要设置的首部,第二个串表示要在首部中放置的值。需要说明,这个方法必须在调用open()之后才能调用。 二.(window.ActiveXObject) 什么意思? 三.使用XMLHTTPRequest对象发送请求和处理响应之前,我们必须要用javascript创建一个XMLHTTPRequest对象。(IE把XMLHTTPRequest实现为一个ActiveX对象,其他的浏览器[如Firefox/Safari/Opear]则把它实现为一个本地的javascript对象)。 四.onreadystatechange方法: onreadystatechange 事件是微软对 IE 浏览器的私有事件扩充,所有元素都存在 onreadystatechange 事件。 5.readyState属性: 0:表示未初始化,new完后 1:已打开,对象已经创建并初始化,但还未调用send方法 2:已经调用send方法,但该对象正在等待状态码和头的返回 3:已经正在接收数据,但是对象和头的信息不完整。 4:已经接收完毕,所有数据加载完毕。 complete一般相对于js判断文件(图片、swf、脚本文件...)加载状态时使用: 0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。 1-LOADING:加载程序进行中,但文件尚未开始解析。 2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。 3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。 4-COMPLETED:文件已完全加载,代表加载成功。 在开发中,两者都表示已经接收到响应数据。六.status状态属性值: 100系列码 400BadRequest:表示你提交的数据格式不被服务端认可,或者说是无效的数据格式 404 not found 200 OK (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |