xmlHttpRequest对象的使用
创建:
function createXmlHttpRequest()
{
var xmlrequest;
if (window.ActiveXObject)
{
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
xmlrequest = new XMLHttpRequest();
}
return xmlrequest;
}
请求:
1:get
xmlhttp.open("GET","test1.txt",true);//语法:open(method,url,async)
//method:请求的类型;GET 或 POST
xmlhttp.send();
使用get时候会出现缓存,可以如下解决:
为了避免这种情况,请向 URL 添加一个唯一的 ID:
xmlhttp.open("GET","demo_get.asp?t=" + Math.random()
,true);
xmlhttp.send();
2:post
简单的post:
xmlhttp.open("POST","demo_post.asp",true);
xmlhttp.send();
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");
onreadystatechange 事件
1、onreadystatechange
存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
2、readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
- 0: 请求未初始化
- 1: 服务器连接已建立
- 2: 请求已接收
- 3: 请求处理中
- 4: 请求已完成,且响应已就绪
3、status
200: "OK"
404: 未找到页面
4、就绪
当 readyState 等于 4 且状态为 200 时,表示响应已就绪:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
1、responseText 获得字符串形式的响应数据。
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
2、responseXML 获得 XML 形式的响应数据。
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br />";
}
document.getElementById("myDiv").innerHTML=txt;