AJax的核心对象在1988年就已经集成于IE中了,随后在各种主流浏览器中也陆续开始得到支持。XMLHttpRequest对象已经在大多数的浏览器中使用,这个对象是Ajax兴起的客观基础以及前提条件。
XMLHttpRequest强大之处就是允许开发者在JavaScript中以异步的方式向服务器发出HTTP请求并得到响应。让客户端可以在任何时候与服务器进行通信,并且不仅限于在整个页面提交的时候。同时,异步不会阻塞用户的当前操作,用户等待的时候仍然可以进行其他的操作。
创建XMLHttpRequest对象:
Var xmlHttp=new XMLHttpRequest();
老版本的IE使用Activex对象:
Var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
//为了避免不支持的现象。
Var xmlHttp; If(window.XMLHttpRequest) { //对于新版本的浏览器。 xmlHttp=new XMLHttpRequest(); } Else { //对于旧版本的浏览器。 xmlHttp= new ActiveXObject("Microsoft.XMLHTTP"); }
将请求发送到服务器:
用XMLHttpRequest对象的open()和send()方法:
xmlHttp.open("GET","txtName.text",true);
常用方法:
描述 |
|
Open(method,url,async) |
规定请求的类型、URL以及是否异步处理请求。 method:请求的类型;get或post url:文件在服务器上的位置。 async:true(异步)或false(同步) |
Send(string) |
将请求发送到服务器。 |
setRequestHeader(header,value) |
向请求添加HTTP头。 header:规定的头名称。 value:规定的头值。 |
属性:
描述 |
|
onreadystatechange |
|
readyState |
存有XMLHttpRequest的状态。0到4变化。 0:请求未初始化。 1:服务器链接已建立。 2:请求已接受。 3:请求处理中。 4:请求已完成,且响应已就绪。 |
status |
200:"ok" |
请求服务的类型:
Get与Post相比较:
大部分情况使用Get。
特殊情况使用Post:
小结:
整个过程是:
创建XMLHttpRequest 对象 -> 指定发送地址及发送方法 -> 发送请求 -> 指定处理方法并处理返回结果。但是需要注意,我们正常的思路理解是这样的,可是onreadystatechange事件句柄指定处理方法需要在发送之前就指定好,否则无法处理状态变化事件。
所以我们应该按照下面的流程:创建XMLHttpRequest 对象 -> 指定发送地址及发送方法 -> 指定状态变化处理方法 -> 发送请求,请求发送后状态变化了就会自动调用指定的处理方法。
原文链接:https://www.f2er.com/ajax/166775.html