• 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
     
     
     
     
     
  • 相关阅读:
    Working with WordprocessingML documents (Open XML SDK)
    How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
    Azure:Manage anonymous read access to containers and blobs
    Convert HTML to PDF with New Plugin
    location.replace() keeps the history under control
    On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
    HTTP Modules versus ASP.NET MVC Action Filters
    解读ASP.NET 5 & MVC6系列(6):Middleware详解
    Content Negotiation in ASP.NET Web API
    Action Results in Web API 2
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3861407.html
Copyright © 2020-2023  润新知