XMLHTTP Request Object获取服务器数据

2016-02-19 15:34 11 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的XMLHTTP Request Object获取服务器数据,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - Web开发 】

 在Web客户端使用xmlhttp对象,可以十分方便的和服务器交换数据,我们可以获取和发送任何类型的数据,甚至二进制数据到服务器上。xmlhttp技术同时也是目前大多数无刷新页面使用的和服务器交换数据的方式,这种方式比以往的隐藏iframe的方法要方便和经济的多。

    同时让我们高兴得是xmlhttp并不是IE特有的东西,虽然目前还不是W3C的标准,不过IE, Netscape/Mozilla, 和Safari都支持。在IE中我们使用new ActiveXObject('MSXML2.XMLHTTP')或者new ActiveXObject("Microsoft.XMLHTTP")来获得的xmlhttp对象实例,使用前者还是后者和客户端机器安装的MSXML版本有关。在Netscape/Mozilla和Safari中,使用new XMLHttpRequest()来获得xmlhttp对象实例。比如在IE中,我们通常这样使用: var xmlhttp = null; 
try 

    xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); 

catch(e) 

    try 
    { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    catch(e2){} 

 


    使用xmlhttp对象其实是并不是什么困难的事,它一共就6个方法8个属性。不过它最主要的是提供了两种执行模式:同步模式和异步模式。同步模式可以比较精确的控制程序流程,可是如果服务器的Response太慢,browser会有死掉失去相应的问题;而使用异步模式由于是事件触发方式控制流程,会给程序运行带来一些不可与预计的问题,因为你不知道客户端等待服务器Response的过程中,用户会在browser里做什么操作。 

    下面是一个同步方式获取服务器数据的简单示例:

function GetRemoteData(url)
{
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    try
    {  
         xmlhttp.open('GET', url, false);
         if ( xmlhttp.status == 200 )
         {
             return xmlhttp.responseText;
         }
         throw ''; 
    }
    catch(e)
    {
         return '';
    }
}


    XMLHTTP对象的属性和方法列表(来自IXMLHTTPRequest接口):

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

 

   Name Type Description onreadystatechange N/A指定当就绪状态发生改变时调用的事件处理函数,仅用于异步操作  readyState Long异步操作的状态:未初始化(0),正在加载(1),已加载(2),交互(3),已完成(4)responseBody Variant将响应信息正文作为unsigned byte数组返回responseStream Variant将响应信息正文作为一个ADO Stream对象返回responseText String将响应信息正文作为一个文本字符串返回responseXML Object通过XMLDom将响应信息正文解析为XMLDocument对象status Long服务器返回的HTTP状态码statusText String服务器HTTP响应行状态

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   Name Desciption abort取消当前 HTTP 请求getAllResponseHeaders从响应信息中检索所有的标头字段getResponseHeader从响应信息正文中获得一个 HTTP 标头值open(method, url, boolAsync, bstrUser, bstrPassword)打开一个与 HTTP 服务器的连接send(varBody)设定一个请求的标头字段setRequestHeader(bstrHeader, bstrValue)向 HTTP 服务器发送请求。可包含正文。


    这里面显然就open方法比较麻烦,带了一大堆参数,它们的含义分别是:

   Parameter Description methodHTTP的通信方式,比如GET, HEAD, POST, PUT, DELETE, CONNECT等url接收数据的服务器的URL地址,URL可带QueryStringboolAsync一个布尔标识,说明请求是否为异步的。如果是异步通信方式,客户端就不等待服务器的响应;如果是同步方式,客户机会等到服务器返回消息后才去执行其它操作bstrUser用户ID,用于服务器身份验证bstrPassword用户密码,用于服务器身份验证


    异步通讯的示例:

xmlhttp.open("GET", "default.aspx", true);
xmlhttp.onreadystatechange = function()
{
    if ( xmlhttp.readyState==4 )
    {
        alert(xmlhttp.responseText);
    }
}
xmlhttp.send(null);


    其实使用xmlhttp就这么简单,复杂的是服务器端数据的组织方式,而且需要开发人员同时熟悉Client和Server端的开发,才能事半功倍。可是好像说了半天这个玩意儿和xml没有什么关系啊,怎么叫xmlhttp呢?我们注意到response的数据类型中有一个responseXML,不过它解析返回的XMLDocument属于XMLDOM的内容了,和使用xmlhttp来和服务器通讯的关系并不大,以后再来细说。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1609919.html

延伸阅读
标签: 服务器
2013如何选购数据库服务器 随着论坛、电商、ERP等行业迅速发展,数据库变得愈加重要,且在具备一定规模之后,对服务器硬件的设备愈加严苛。对这些企业来讲,服务器、存储设备一旦无法承受数据库所带来的工作压力,将直接造成系统崩溃或多项业务瘫痪,其损失则不言而喻。 2013新年伊始,以数据库为主的企业如何挑选一款可靠的、稳定的...
标签: ASP
  使用索引服务器的对象 你可以象使用其它数据库一样使用索引服务器,也就是Index Server,它是IIS4中包含的内容索引引擎。你可以对它进行ADO调用并搜索你的站点,它为你提供了一个很好的web 搜索引擎。 它非常容易使用。你只需要声明对象,然后对引擎进行调用,然后引用你所请求的属性、栏和值。 那么,怎样做以上这些工...
标签: 服务器
thttpd服务器概述   随着微处理器技术、计算机网络技术的进步,基于嵌入式WEB的网络数字视频监控系统逐渐得到了人们的广泛关注。把图像采集、视频压缩和WEB功能集中到一个体积很小的设备内,可以直接连入局域网和Internet,达到即插即用,省掉多种复杂的电缆,安装方便,用户也无须安装任何硬件设备即可观看,这使得由嵌入式网络视频...
标签: 服务器
在CentOS服务器上配置NTP服务器的教程   网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP 管理的所有系统时钟都会同步精确到毫秒级。 ...
        在下前段时间用Delphi做了一个单机版的软件,数据库用Access,开发过程比较顺利。怎知世事难预料,有天客户提出要在网络环境下运行此软件!         相信很多朋友都遇到此类问题。现在有3条路可以走,一条是将Access数据库升级成SQL Server数据库,还...

经验教程

890

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部