XMLHTTP使用具体解释

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
 
 
 
 
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118118.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【vim 多行注释

    【vim 多行注释vim常用命令之多行注释和多行删除vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率。1.多行注释:1.首先按esc进入命令行模式下,按下Ctrl+v,进入列(也叫区块)模式;2.在行首使用上下键选择需要注释的多行;3.按下键盘(大写)“I”键,进入插入模式;4.然后输入注释符(“//”、“#”等);5.最后按下“Esc”键。注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的2.删除多行注释:

    2022年6月18日
    23
  • linux宝塔卸载,宝塔面板卸载与安装[通俗易懂]

    linux宝塔卸载,宝塔面板卸载与安装[通俗易懂]一键卸载宝塔Linux面板及运行环境命令1-使用xshell链接服务进入服务器命令:wgethttp://download.bt.cn/install/bt-uninstall.sh2-执行脚本命令:shbt-uninstall.sh3-根据提示4-完成更多功能及文档2,安装宝塔面板执行以下代码进行安装宝塔6.9免费版。宝塔6.9版本已经很稳定了,推荐大家直接安装6.9版本(注意:…

    2022年9月6日
    3
  • java记录访问时间_在java中记录上次访问时间和上次修改时间?

    java记录访问时间_在java中记录上次访问时间和上次修改时间?首先,让我们关注这些事物的含义.访问–上次读取文件的时间,即上次访问文件数据的时间.修改–上次修改文件(内容已被修改),即文件数据上次修改的时间.更改–文件的元数据的最后一次更改(例如,权限),即上次更改文件状态的时间.编辑.访问时间正在改变.我建议你使用Thread.sleep(100)或其他东西,然后看看这个问题是否仍然存在.如果是这样,罪魁祸首就必须是您正在运行的操作系统,因为J…

    2022年7月8日
    18
  • django动态路由_路由器和转换器的区别

    django动态路由_路由器和转换器的区别自定义路径转换器有时候上面的内置的url转换器并不能满足我们的需求,因此django给我们提供了一个接口可以让我们自己定义自己的url转换器django内置的路径转换器源码解析在我们自定义路由转

    2022年7月29日
    3
  • 3.15曝光“山寨”杀毒软件“杀毒三宗罪”

    3.15曝光“山寨”杀毒软件“杀毒三宗罪”“山寨”版杀毒软件,不同于其他山寨手机等产品。对于山寨手机,除了需要用户忍受哇哇叫的刺耳铃声,最起码山寨手机在通讯及其他娱乐商务功能上,都可以满足用户需求,不会在产品功效上严重侵犯消费者权益。而山寨

    2022年7月3日
    20
  • FVWM简明使用指南 pdf_fpv教程

    FVWM简明使用指南 pdf_fpv教程http://docs.huihoo.com/homepage/shredderyin/fvwm.html FVWM简明使用指南FvwmisawindowmanagerforX11.Itisdesignedtominimizememoryconsumption,providea3Dlooktowindowframes,andavirtual

    2022年10月3日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号