关闭

XmlHttp对象简介

标签: url服务器headerfunctionstringxml
623人阅读 评论(0) 收藏 举报
客户端调用XMLHTTP的过程5个步骤:
1、创建XMLHTTP对象
2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。
客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
3、发送指令。
4、等待并接收服务端返回的处理结果。
5、释放XMLHTTP对象
XMLHTTP方法:

open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword)
bstrMethod: 数据传送方式,即GET或POST。用"POST"方式发送数据,可以大到4MB,也可以换为"GET",只能256KB。
bstrUrl: 服务网页的URL。
varAsync: 是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。用中一般将其置为False,即异步执行。
bstrUser: 用户名,可省略。
bstrPassword:用户口令,可省略。

send(varBody)
varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。 发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。

setRequestHeader(bstrHeader, bstrValue)
bstrHeader:HTTP 头(header)
bstrValue:HTTP 头(header)的值
如果Open方法定义为POST,可以定义表单方式上传:
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

abort
取消当前 HTTP 请求
getAllResponseHeaders
从响应信息中检索所有的标头字段
getResponseHeader
从响应信息正文中获得一个 HTTP 标头值

三、XMLHTTP属性:

onreadystatechange
在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。

responseBody
Variant型 结果返回为无符号整数数组
responseStream
Variant型 结果返回为IStream流
responseText
string型 结果返回为字符串。
responseXML
object型 结果返回为XML格式数据。
status
Long型 服务器返回的HTTP状态码
statusText
String型 服务器HTTP响应行状态

readyState状态

function GetPhotoHttpRequst()
{
 var url = "http://rss.sina.com.cn/gadget/focus_images.xml";
 photoHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
 photoHttpRequest.onreadystatechange = SinaSideBarPhotoProcessResponse;
 //url是被读取的文件,true表示异步传输,false表示非异步传输,async是asynchronism简写
 photoHttpRequest.open("GET",url,true);
 photoHttpRequest.send();
}

function SinaSideBarPhotoProcessResponse()
{
    if(photoHttpRequest.readyState==4)
    {
      if(photoHttpRequest.status!=200)
       {
            alert("OK");
            return;
       }
 }

0: (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1: (初始化) 对象已建立,尚未调用send方法
2 :(发送数据) send方法已调用,但是当前的状态及http头未知
3 :(数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
4 :(完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:118432次
    • 积分:1
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:16篇
    • 译文:0篇
    • 评论:24条
    文章分类
    最新评论
    源码参考