XMLHTTP使用具体解释

摘要:
XMLHTTP对象是Microsoft MSXML开发工具包中的一个对象,它使用HTTP和XML协议访问web资源。它从MSXML3.0开始出现,主要用于AJAX技术,从其他网络资源获取信息,然后javascript更新页面的部分内容。此方法用于细化页面的可更新内容,刷新整个页面而不更新很少的内容。例如,XMLHTTP对象的用法如下:1-创建XMLHTTP对象。不同的浏览器以不同的方式创建它,
XMLHTTP对象是Microsoft的MSXML开发包中带的一个用HTTP,XML协议訪问web资源的对象. 从MSXML3.0開始出现. 它在AJAX技术中主要用来从其它网络资源获取信息,然后由javascript来更新页面中的部分内容.
採用这样的方法将页面可更新内容细化,不须要更新非常少的内容而刷新整个页面.
 
XMLHTTP对象的用法例如以下:
1- 创建XMLHTTP对象,不同的浏览器创建方式不同,本文以IE为例说明.
2- 用XMLHTTP对象向外部资源发送请求信息, 同步或异步获得返回结果
3- 处理返回结果,在页面上显示,这时要用到javascript相关技术
 
XMLHTTP对象的方法例如以下: (函数原型採用VB语法)
 
Sub abort()
中断当前对象的HTTP请求.
 

 Function getAllResponseHeaders() As String

获取HTTP响应结果中的所有Header信息,以字符串格式表示

 Function getResponseHeader(bstrHeader As String) As String

 
获取HTTP响应结果Header中指定名称的值,用字符串表示,假设不存在则返回空串
 
Sub open(bstrMethod As String, bstrUrl As String, [varAsync], [bstrUser], [bstrPassword])
初始化HTTP连接请求对象,设置请求方法,地址,认证信息.
bstrMethod可用值有GET,POST,HEAD,定义向HTTP提交请求的方式;必填
bstrUrl为要訪问的HTTP资源地址;必填
varAsync 可选项,设置是异步还是同步等待返回结果,true-异步方式,false-同步方式,缺省是异步方式;
假设HTTP请求要求username和口令,则在bstrUser,bstrPassword中设置.
 
 
Sub send ([varBody])
向server发送一个HTTP请求,并获取返回结果.
varBody为要发送到server的数据,通常在POST方式下使用.
 
Sub setRequestHeader(bstrHeader As String, bstrValue As String)
在请求header中设置bstrHeader/bstrValue值对并发送到server端.
例:

xmlReq.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded; charset=UTF-8");

 
 

 XMLHTTP属性

 

onreadystatechange

 
 设置请求对象状态readystate改变时要调用的函数对象;
 

readyState

 

请求对象的状态值,含义例如以下:

0 - 请求对象被创建,但未初始化,即open方法未调用

1 - 装载中,open方法已调用,send方法未调用

2 - 已装载,send方法已调用,但还未获得Header信息

3 - 交互中,已获取了部分信息,这时调用responseText将得到不完整信息,会返回错误

4 - 所有数据已接收完毕,可用responseText或responseBody得到完整数据

 responseBody

 

表示从HTTP响应得到的返回原始信息,内容的编码方式决定于请求的server端(UTF-8, UCS-2, UCS-4, Shift_JIS等)

 

responseText

 

 HTTP请求返回数据体的字符串表示,缺省情况下用utf-8编码后返回,假设返回内容中有中文,server端的数据必须用utf-8编码,否则就会出现乱码。

 

responseStream

 

HTTP请求返回数据的流对象,该对象实现IStream接口.

 

responseXML

 

返回XML格式的数据对象. server端返回数据为XML格式数据时可用.server端用动态语言生成xml时,必须设置content-type为text/xml,否则client得到的responseXML为空

 

status

 HTTP返回代码.
200 - 成功
404 - 错误请求
500 - server内部错误,等等. 详见HTTP协议.
 
statusText
HTTP返回状态文本描写叙述.
 
上面说明了XMLHTTP的方法和属性,以下列一些使用实例.
 
 
 例1  连接到google,显示获得的信息
 
 
<script language="javascript">
 
 
function getGoogle(){
    var xmlReq ;
    try{
        xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
 
        var web = "http://www.google.com";
 
        //异步方式
        xmlReq.open("GET",web,true);
        xmlReq.onreadystatechange = function(){
              if (xmlReq.readystate == 4){
                      document.write(xmlReq.responseText);
              }
 
        }
 
        xmlReq.send();
 
    catch(e){
       
         alert(e);
    }
    
}
 
</script>
 
 
 例2 用POST方法发送数据到webserver
 
<script language="javascript" >
    var xmlReq ;
    function sendData(){
        
          try{
 
                    xmlReq = new ActiveXObject("MSXML2.XMLHTTP");
                    var data = "name=james&id=1234";
                    var web = "http://www.myweb.com/login.jsp"    //实际执行要换为存在的一个地址
                    xmlReq.open("POST",web,true);
                    xmlReq.onreadystatechange = resHandler;         //设置返回值处理函数
                    xmlReq.setRequestHeader("Content-Type","

           xmlReq.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded; charset=UTF-8");

                    xmlReq.send(data);
 
          } catch(e) {
               alert(e);
          }
 
    }
 
 
    function ResHandler(){
           if (xmlReq.readystate == 4){
                
                  alert(xmlReq.responseText);
 
           }
    }
 
 
</script>
 
 
在Mozilla浏览器中要用xmlReq = new XMLHttpRequest()来创建HTTP请求对象. 其它用法与MSXML同样。基于安全问题,假设open中訪问的是另外的域,浏览器一般会禁止这样的操作,要跨域訪问需改动安全配置。
 
 
參考文档:
 
1 - http://msdn.microsoft.com  中MSXML SDK
 
 
 
 
 

免责声明:文章转载自《XMLHTTP使用具体解释》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spark性能调优06-数据倾斜处理在三台Centos或Windows中部署三台Zookeeper集群配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

XML WebService实例详细解析

先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有 函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他 们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态...

XmlDocument的应用创建Xml模板

 protected void btnCreate_Click(object sender, EventArgs e)        {            //定义XMLDocument            XmlDocument xmlDocument = new XmlDocument();            //定义XML文档头文件   ...

前端性能利器——dynatrace ajax edition

因为最近的工作跟性能分析有关系,所以写个小总结。 顺带推荐两个我常用的小工具: 1、文件对比工具beyond compare,非常好用,对比、修改很简单。当然我只是用的试用版本。google一下官网下载 2、绿色版本 FastStone Capture,做视频、截图、取距离、取色,非常非常的方便,配合PS,检查页面元素对齐,绝对一利器!如果你比较懒的话,可...

HTTP请求状态码

标签:请求状态码http 如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通过浏览器访问您的网页或在 Googlebot 抓取该网页时),那么,您的服务器会返回 HTTP 状态代码以响应该请求。 此状态代码提供了有关请求状态的信息,且为 Googlebot 提供了有关您网站和请求的网页的信息。 一些常见的状态代码为: 200 -...

dom4j工具对XML写入修改删除操作实现

import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import java.io.File; import java.io.FileOutputS...

JavaEE简介

1、为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展。当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担。 为了程序的易维护性和可扩展性,这就需要我们使用JavaEE技术来进行项目开发 2、什么是JavaEE JavaEE是一个开发分布式企业级应用的规范和标准。 Java语言...