1.XMLHttpRequest---用于后台与服务器进行数据交换,浏览器通过XMLHttpRequest进行http通信,所有现代的浏览器都支持XMLHttpRequest对象
2.作用:
在不重新加载页面的情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器接收数据
在后台向服务器发送数据
3.XMLHttpRequest 的使用方法
1)创建XMLHttpRequest对象-------var xmhttp = new XMLHttpRequest();
IE5和IE6 使用 var xmlhttp = new ActiveXObject();
-
xmlhttp.open("get",url,true)
xmlhttp.send();
xmlhttp.onreadystatechange=state_change;function state_change() {
if(xmlhttp.readyState ==4) {
if(xmlhttp.status ==200) {
}else {
}
}
}
4.onreadystatechange ---是一个事件柄,他的值state_change是一个事件名称,当xmlHttpRequest的状态发生改变是,才会触发函数,状态从0-4发生变化,只有当状态为4时,才会执行代码
5.我们在open的第三个参数使用了ture,改参数是代表请求是否异步。true表示脚本会在send()之后执行,而不会等待来自服务器的相应
onreadystatechange 使代码复杂化,但这是在未得到服务器响应的情况下,防止代码停止的最好的办法,
若为false,可以省去额外的onreadystatechange代码,如果请求失败时,执行别的代码无关紧要,可以设置为false。
6.构造函数的属性
XMLHttpRequest.onreadystatechange
当readyState属性发生变化时,调用EventHandler
XMLHttpRequest.readyState (只读)
返回一个无符号短整型数字,代表请求的状态码
XMLHttpRequest.response(只读)
返回一个Array,Blod,Document或者DOMString,具体的类型取决于
XMLHttpRequest.responseType的值,其中包含整个响应实体
XMLHttpRequest.responseText(只读)
返回一个DOMString,该DOMString包含对请求的响应,如果请求未成功或响应未送达。则返回null
XMLHttpRequest.responseType
一个用于定义响应类型的枚举值
XMLHttpRequest.responseXML(只读)
返回一个document,其中包含该请求的响应,如果请求未成功或尚未发送成功,返回null
XMLHttpRequest.status(只读)
返回一个无符号整形,代表请求的响应状态。
XMLHttpRequest.statusText(只读)
返回一个DOMString,其中包含Http服务器返回的响应状态。与XMLHttpRequest.status不同的,是,它包含完整的响应式文本。
XMLHttpRequest.timeout
表示该请求的最大请求(毫秒),若超出该时间,请求会自动终止。
7.事件处理器
作为XMLRequest实例的属性之一,所有的浏览器都支持onreadystatechange。
方法:
XMLHttpRequest.abort();
如果请求已被发出,则立刻中止请求
XMLHttpRequest.getAllResponseHeaders();
以字符串的形式返回所有用CRLF(回车并换行)分割的响应头,如果没有收到响应,则返回null
XMLHttpRequest.getResponseHeader()
返回包含指定响应头的字符串,如果响应尚未收到或响应中不存在该报头,则返回null
XMLHttpRequest.open()
初始化一个请求,该方法只能在js代码中使用,如要在native code中初始化请求,请使用openRequest();
XMLHttpRequest.send();
发送请求,如果请求是异步,那么该方法将在请求发送后立即返回