AJAX——核心XMLHttpRequest对象
通过 XMLHttpRequest 对象,您可以在不重新加载整个页面的情况下更新网页中的某个部分。
XMLHttpRequest.prototype的属性–列出主要属性
abort:资料说是调用该方法后 , readyState变为0 。在readyState-时测试 , 我测试结果readyState变为4 , 其余都是顺序变化 1 -2 -3 -4
open:打开连接,传入方法和地址,是否异步,是否需要认证,调用该方法的时候readyState改为1
send:发送请求 , 发送成功后readyState变为2 ,然后自动接受服务器数据 。
setRequestHeader:设置请求头,传入两个参数,参数一请求头的属性,参数二请求头的值
readyState:对象初始化为0 , 调用open方法之后改为1 。 调用send()方法后自动修改值。不可人工干预。不可自定义设置(自定义设置报错,搞不懂报错原理),0-该对象被构造出来的时的值 。 1-open开始打开链接,把值变为1 ,2-send方法调用后,把请求发送到服务器。但是未收到响应 。 3-收到响应后,但响应未完成 ,4-服务器的响应全部接受
onreadystatechange:readyState改变时调用的事件函数。
getAllResponseHeaders:返回响应头部信息 , 测试在readyState等于2及大于2都是有响应头部信息 ,头部信息由字符串
getResponseHeader:传入参数(必传否则报错),返回对应的响应头信息 。未查询到返回null
responseText:服务器端返回的响应体 ,不包含响应头。readyState为1和2时,该值为空。数据较少时 ,3和4一样 。 没有使用大数据测试过 。 资料介绍数据量大时 ,3为部分数据 , 4为全部数据。
对象的属性和方法:
属性 |
说明 |
readyState |
表示XMLHttpRequest对象的状态:0:未初始化。对象已创建,未调用open;(请求未初始化) 1:open方法成功调用,但Sendf方法未调用;(服务器建立连接) 2:send方法已经调用,尚未开始接受数据;(收到的请求) 3:正在接受数据。Http响应头信息已经接受,但尚未接收完成;(处理请求) 4:完成,即响应数据接受完成。(请求完成和响应准备就绪) |
Onreadystatechange |
请求状态改变的事件触发器(readyState变化时会调用这个属性上注册的javascript函数)。 |
responseText |
服务器响应的文本内容 |
responseXML |
服务器响应的XML内容对应的DOM对象 |
Status |
服务器返回的http状态码。200表示“成功”,404表示“未找到”,500表示“服务器内部错误”等。(4开头一般是客户端,5开头的是服务端) |
statusText |
服务器返回状态的文本信息。 |
方法 |
说明 |
Open(string method,string url,boolean asynch, String username,string password) |
指定和服务器端交互的HTTP方法,URL地址,即其他请求信息; Method:表示http请求方法,一般使用"GET","POST". url:表示请求的服务器的地址; asynch:表示是否采用异步方法,true为异步,false为同步; 后边两个可以不指定,username和password分别表示用户名和密码,提供http认证机制需要的用户名和密码。 |
Send(content) |
向服务器发出请求,如果采用异步方式,该方法会立即返回。 content可以指定为null表示不发送数据,其内容可以是DOM对象,输入流或字符串。 |
SetRequestHeader(String header,String Value) |
设置HTTP请求中的指定头部header的值为value. 此方法需在open方法以后调用,一般在post方式中使用。 |
getAllResponseHeaders() |
返回包含Http的所有响应头信息,其中相应头包括Content-length,date,uri等内容。 返回值是一个字符串,包含所有头信息,其中每个键名和键值用冒号分开,每一组键之间用CR和LF(回车加换行符)来分隔! |
getResponseHeader(String header) |
返回HTTP响应头中指定的键名header对应的值 |
Abort() |
停止当前http请求。对应的XMLHttpRequest对象会复位到未初始化的状态。 |