Ajax技术主要完成页面的局部刷新,通过Ajax技术可以使之前的应用程序在每次提交时不用进行页面的整体刷新,从而提升操作的性能,在Ajax中主要是依靠XMLHttpRequset对象完成操作。
Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML),产生的主要目的是完成页面的局部刷新。
Ajax是一门综合性的技术,其主要应用包含了HTML、JavaScript、XML、DOM、XMLHTTPRequest等页面技术,但是在这之中最重要的就是XMLHttpRequest对象。
在Ajax中主要是通过XMLHttpRequest对象处理发送异步请求和回应的,创建此对象必须使用JavaScript。
<script language="JavaScript">
var xmlHttp; //Ajax核心对象名称
function create XMLHttp(){ //创建XMLHttpRequest核心对象
if(window.XMLHttpRequest){ //判断当前使用的浏览器类型
xmlHttp=new XMLHttpRequest(); //表示使用的是FireFox内核的浏览器
}else{ //表示使用的是IE内核的浏览器
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
</script>
XMLHttpRequest对象的属性
属性 | 描述 |
---|---|
onreadystatechange | 指定当readState状态改变时使用的操作,一般用于指定具体的回调函数 |
readyState | 返回当前请求的状态,只读 |
responseBody | 将回应信息正文以unsigned byte数组形式返回,只读 |
responseStream | 以Ado Stream对象的形式返回响应信息,只读 |
responseText | 接收以普通文本返回的数据,只读 |
responseXML | 接收以XML文档形式回应的数据,只读 |
status | 返回当前请求的http状态码,只读 |
statusText | 返回当前请求的响应行状态,只读 |
readyState一共有5种取值,分别介绍如下:
0:请求没有发出(在调用open()函数之前)
1:请求已建立但是还没有发出(在调用send()函数之前)
2:请求已经发出正在处理中(这里通常可以从响应得到内容头部)
3:请求已经处理,正在接收服务器的信息,响应中通常有部分数据可用,但是服务器还没有完成相应。
4:响应已完成,可以访问服务器响应并使用它。
XMLHttpRequest对象的方法
方法 | 描述 |
---|---|
abort() | 取消当前所发出的请求 |
getAllResponseHeaders() | 取得所有的HTTP头信息 |
getResponseHeader() | 取得一个指定的HTTP头信息 |
open() | 创建一个HTTP请求,并指定请求模式,如GET请求或POST请求 |
send() | 将创建的请求发送到服务器端,并接收回应信息 |
setRequestHeader() | 设置一个指定请求的HTTP头信息 |
XMLHttpRequest对象的open()和send()方法再回调函数中出现较多,一般都会用open()方法设置一个提交的路径,并通过地址重写的方式设置一些请求的参数,而真正的发出请求可以通过send()方法完成。
当XMLHttpRequest的onreadystatechange属性改变时,status此时不为200(操作正常)遇到的情况: