Microsoft.XMLHTTP对象

本文介绍了MSXML中XMLHTTP对象的创建、初始化及数据发送过程。详细讲解了Open方法与Send方法的使用,并解释了readyState属性的作用。同时,还介绍了不同返回类型的应用场景。

MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。    
  创建XMLHTTP对象的语句如下:    
  Set   objXML   =   CreateObject("Msxml2.XMLHTTP")   或  
  Set   objXML   =   CreateObject(“Microsoft.XMLHTTP”)  
  '   Or,   for   version   3.0   of   XMLHTTP,   use:  
  '   Set   xml   =   Server.CreateObject("MSXML2.ServerXMLHTTP")    
  对象创建后调用Open方法对Request对象进行初始化,语法格式为:    
  poster.open   http-method,   url,   async,   userID,   password    
  Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:      
  http-method:   HTTP的通信方式,比如GET或是   POST    
  url:   接收XML数据的服务器的URL地址。通常在URL中要指明   ASP或CGI程序    
  async:   一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作    
  userID   用户ID,用于服务器身份验证    
  password   用户密码,用于服务器身份验证    
  XMLHTTP对象的Send方法    
  用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:    
  poster.send   XML-data    
  Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。    
  XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:    
  值   说明    
  0   Response对象已经创建,但XML文档上载过程尚未结束    
  1   XML文档已经装载完毕    
  2   XML文档已经装载完毕,正在处理中    
  3   部分XML文档已经解析    
  4   文档已经解析完毕,客户端可以接受返回消息    
  客户机处理响应信息    
  客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的:    
  ●   responseTxt:将返回消息作为文本字符串;    
  ●   responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;    
  ●   responseStream:将返回消息视为Stream对象    
  ●   responsebody:返回无符号的整数

Microsoft.XMLHTTP 是一个用于实现 HTTP 请求的 COM 对象,常用于早期的客户端和服务器端通信,特别是在使用 JavaScript 或 VBScript 的环境中,如 Internet Explorer 浏览器中。它为开发者提供了一种异步请求服务器数据的方式,从而实现页面部分内容的更新,而无需重新加载整个页面。 ### 使用方法 Microsoft.XMLHTTP 的主要使用方式是通过创建一个 XMLHTTP 对象实例,并使用其方法和属性发起 HTTP 请求。常见的步骤包括: 1. **创建对象**:通过 `new ActiveXObject("Microsoft.XMLHTTP")` 创建一个新的 XMLHTTP 对象。 2. **打开连接**:调用 `open(method, url, async)` 方法指定请求类型(GET 或 POST)、目标 URL 和是否异步执行。 3. **设置请求头**:使用 `setRequestHeader(header, value)` 方法设置 HTTP 请求头。 4. **发送请求**:通过 `send(body)` 方法发送请求,若为 GET 请求,body 参数通常为 null。 5. **处理响应**:通过 `onreadystatechange` 事件监听响应状态变化,并通过 `responseText` 或 `responseXML` 获取服务器返回的数据。 示例代码如下: ```javascript var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp.open("GET", "http://example.com/data", true); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { console.log(xmlHttp.responseText); } }; xmlHttp.send(); ``` ### 功能 Microsoft.XMLHTTP 提供了多种功能,包括: - 发起同步或异步的 HTTP 请求。 - 支持 GET 和 POST 请求方法。 - 允许自定义 HTTP 请求头。 - 可以接收文本或 XML 格式的响应内容。 - 支持跨域请求,但受限于浏览器的安全策略。 ### 替代方案 随着 Web 技术的发展,现代浏览器逐渐淘汰了对 ActiveX 的依赖,因此 Microsoft.XMLHTTP 的使用也逐渐减少。以下是其常见的替代方案: - **XMLHttpRequest**:这是浏览器内置的对象,不再依赖 ActiveX,支持现代浏览器,包括 Chrome、Firefox、Safari 和 Edge。它提供了与 Microsoft.XMLHTTP 类似的功能,但具有更好的兼容性和安全性[^2]。 - **Fetch API**:这是一个较新的 Web API,提供了更强大和灵活的方式来发起网络请求。Fetch 支持 Promise,使得异步处理更加简洁明了。它还支持更丰富的功能,如缓存控制、请求中止等[^2]。 - **jQuery.ajax**:对于需要兼容旧浏览器的项目,jQuery 提供了封装良好的 `$.ajax` 方法,其内部根据环境自动选择最佳的实现方式,如 XMLHttpRequest 或 ActiveXObject。它简化了异步请求的开发流程。 Microsoft.XMLHTTP 虽然在现代开发中逐渐被淘汰,但其在早期 Web 开发中扮演了重要角色,推动了 Ajax 技术的普及和发展。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值