var xmlhttp = null; if(window.XMLHttpRequest){ //这个是针对浏览器IE7及其7以上的版。 xmlhttp = new XMLHttpRequest(); } else if(window.ActiveXObject){ //这个是针对浏览器5到7的版本。 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
第二步:注册回调函数。
xmlhttp.onreadystatechange = function(){
};
onreadystatechange是一个事件处理器,用于每个状态变化所触发的事件。
第三步:open(“method”,”URL”,async,”uname”,”pswd”)
只用于设置请求方式、URL路径、以及是否同步,并不发送请求。
参数作用
method发送请求的方式,可选的参数有:GET、POST和PUT。
URL要发送的URL路径,可以使用绝对路径和相对路径。
async请求是否要被异步处理。也可以不写,默认为true。
true,脚本处理会在send()发送之后继续处理,即异步处理。
false,在继续脚本处理之前,脚本会等待某个响应,即同步处理。
uname目前还没用过,文档也没有说明。直接不写就行。
pswd目前还没用过,文档也没有说明。直接不写就行。
如果URL要求带参数呢?
如果是get请求的话,将参数直接在url后面进行拼接。
例如:xmlhttp.open(“get”,”?name=xiaosan“);
如果是post请求的话,则要进行多项设置操作:
例如:xmlhttp.open(“post”,”“);
xmlhttp.setRequestHeader(“content-type”,”application/x-www-form-urlencoded”);
xmlhttp.send(“name=xiaosan”);
其中,setRequestHeader(“label”,”value”)的作用是想要被发送的http报头添加lable/value对。
第四步:send(content)
发送请求。如果没有参数,则写成send(null)。
第五步:在回调函数中进行具体的数据操作。
在这之前要先了解XMLHttpRequest的一些属性。
属性描述
onreadystatechange状态发生改变的时候,能触发一些事情。
readyState详情见下表
status数字返回状态,比如”OK”为200,”Not Found”为404等
statusText字符串返回状态,比如”OK”,”Not Found”等
responseText以字符串返回响应。
responseXML以XML返回响应。返回的是一个XML对象,可以用DOM进行解析
下表是一个readyState的状态值以及状态值所代表的含义:
状态值代表的状态释义
0未初始化的状态,代表XMLHttpRequest对象被创建之前
1加载中的状态,open操作。
2已加载的状态,send操作。
3交互的状态,接收到了响应数据,但只有响应头,正文还没别接收。
4完成的状态,所有的http响应接收完成。