使用ajax首先定义个XMLHttpRequest变量,为了判断对IE6以及以下版本的兼容性,需要
var xmlHR;
if (window.XMLHttpRequest) {
xmlHR = new XMLHttpRequest();
}else{
xmlHR = new ActiveXObject("Microsoft.XMLHTTP");
}
XMLHttpRequest对象的常用属性和方法有:
XMLHttpRequest 对象的三个常用的属性:
1. onreadystatechange 属性
onreadystatechange 属性存有处理服务器响应的函数。
下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:
xmlHR.onreadystatechange=function()
{
// 我们需要在这里写一些代码
}
2.readyState 属性
readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。
readyState 属性可能的值:
状态 描述
0 请求未初始化(在调用 open() 之前)
1 请求已提出(调用 send() 之前)
2 请求已发送(这里通常可以从响应得到内容头部)
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)
我们要向这个 onreadystatechange 函数添加一条 If 语句,来测试我们的响应是否已完成(意味着可获得数据):
xmlHR.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// 从服务器的response获得数据
}
}
3.responseText 属性
可以通过 responseText 属性来取回由服务器返回的数据。
在我们的代码中,我们将把时间文本框的值设置为等于 responseText:
xmlHR.onreadystatechange=function()
{
if(xmlHR.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttpRequst的方法
1.open() 方法
open() 有三个参数。第一个参数定义发送请求所使用的方法,第二个参数规定服务器端脚本的URL,第三个参数规定应当对请求进行异步地处理。
xmlHR.open("GET","test.php",true);
2.send() 方法
send() 方法将请求送往服务器。如果我们假设 HTML 文件和 PHP 文件位于相同的目录,那么代码是这样的:
xmlHR.send(null);
XMLHttpRequest的ajax使用一般步骤
open(“GET”或“POST”) setRequestHeader ("Content-type","application/x-www-form-encoded") send onreadystatechange