方法
abortU 取消当前请求
getAllResponseHeaders0 获取响应的所有 HTTP 头信息
get esponseHeaderO 从响应信息中获取指定的 HTTP头
openO 创建新的HTTP请求,并指定请求的方法,URL以及验证信 息(如用户名、密码等等)
sendO 发送HTTP请求到Web服务器并接受回应
setRequestHeaderO 单独指定请求的某个 HTTP 头.
//
属性
Onreadystatechange 指定当 readystate 厲性改变时的事件处理句柄(回调函数)
readyState 返回当前请求的状态
responseBody 将回应信息正文以 unsigned byte 数组形式返回
responseStream ADO Stream 对象的形式返回啊应信恩
responseText 将响应信息作为字符串返回
responseXML 将响应信息格式化为 Xml Document 对象并返回
status 返回当前请求的hittp 状态码
status Text 返回当前请求的响应行状态
HTTP头部信息:
有两部分组成:请求(Request)和响应(Respone)
- 请求:
HTTP请求信息由三个部分组成:请求行、信息报头、请求正文(可选)
请求行以一个方法符号开头,以空格分隔、后面跟请求的URI和协议的版本。
格式如下:
Method | Request-URI | Http-Version | CRLF
Method:表示请求方法,如GET和POST
在web上输入一个url,就会向该服务器发送一个get请求
Request-URI:统一资源标识符
Http-Version:请求HTTP版本吧
CRLF:表示回车和换行
Get方法:可以在url中附带参数待查询,并且告诉服务器应该返回什么样的数据
POST方法:请求服务器接受附在请求后面的数据,常用于提交表单
- 响应:
由状态行、消息报头、响应正文组成
定义XMLHttpRequest对象:
步骤:
- 定义XMLHttpRequest实例对象
- 调用XMLHttpRequest对象的open方法打开服务器端URL地址
- 注册Onreadystatechange事件处理函数,准备接受响应数据,并进行处理
- 调用XMLHttpRequest对象的send()方法发送请求
创建对象:
var Req=new XMLHttpRequest()
使用open()建立XMLHttpRequest连接:
XmlObj.open(methods, url, async, user, passw)
Methods: 方式,POST或GET等,大小写不敏感
url: 请求的URL地址字符串, 可以为绝对地址或相对地址
async: 异步调用(true)或者同步调用(false),true时onreadystatechange属 性指定的回调函数会被调用
user: 可选参数, 用于指定参数名
passw: 用于验证用户名的密码,用户名为空时忽略
在建立连接时,先使用open来建立一个http请求,然后使用send()发送通过该请求发送的数据即:XmlObj.open(); XmlObj.send()
同时使用XMLHttpRequest对象的responseStream,responseBody,responseText和responseXML属性可以接受响应数据。
responseText:获得字符串形式
responseXML:获得XML形式的响应数据
发送一个GET请求:
<script>
var XMLobj = new XMLHttpRequest()
function req(url){
XMLobj.open(“GET”, url, false)
XMLobj.send();
Alert(XMLobj.responseText)
}
</script>
发送一个POST请求:
<script>
var XmlObj=new XMLHttpRequest();
function Req(url){
XmlObj.open("POST",url, false);
XmlObj.setRequestHeader('Content-type','application/x-www-form-urllencoded');
XmlObj.send("callback=functionName");
alert(XmlObj.responseText);
}
</script>
application/x-www-form-urllencoded为需要post的内容,用来传递表单值,一般必须设置该选项,否则服务器无法识别传递的数据
setRequestHeader()的方法如下:
XmlObj.setRequestHeader("header-name","value")
XmlObj.setRequestHeader("User-Agent","XMLHTTP");
//一般设置头部信息中的User-Agent为XMLHTTP
在GET和POST请求中发送数据使用串行字符
- 传输键值对信息
- {
- user:"aabb",
- padd:"123145",
- email:"822089447@qq.com"
- }
- //变成串行格式
- user:"aabb" & padd:"123145" & email:"822089447@qq.com"
2、传输有序数列表
[
{name:"text",value:"cc88"},
{name:"text",value:"12345"}
]
text:"cc88" & text:"12345"
XmlObj.readyState有五个值,分别表示发送请求的五个状态
为0,表示已建立对象,但是没调用open()方法
为1,表示已建立对象,但没用调用send()方法
为2,send()方法已经调用,但HTTP头为止
为3,数据传送中,服务器还没有回调数据
为4,数据接受完毕,可以使用responseText/Body获取响应数据
且在发送请求的状态码改变时,会调用onreadystatechange
使用XmlObj.abort()以终止请求
XML响应数据:
responseBody 将响应信息以Unsigned Byte数组形式返回
responseStream 以ADO Stream对象的形式返回响应信息
responseText 将响应信息作为字符串返回
responseXML 将响应信息格式化为XML文档格式返回
获取响应的头部信息:
getAllResponseHeaders():获取响应中所有HTTP头信息
getResponseHeader():从响应信息中获取指定的HTTP头信息