使用XMLHTTP Request Object获取服务器数据
来源:互联网 发布:上海楼市成交数据 编辑:程序博客网 时间:2024/06/03 05:13
原文地址:http://www.cnblogs.com/birdshome/archive/2004/12/26/82238.html
在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中,我们通常这样使用:
try
{
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e2){}
}
使用xmlhttp对象其实是并不是什么困难的事,它一共就6个方法8个属性。不过它最主要的是提供了两种执行模式:同步模式和异步模式。同步模式可以比较精确的控制程序流程,可是如果服务器的Response太慢,browser会有死掉失去相应的问题;而使用异步模式由于是事件触发方式控制流程,会给程序运行带来一些不可与预计的问题,因为你不知道客户端等待服务器Response的过程中,用户会在browser里做什么操作。
下面是一个同步方式获取服务器数据的简单示例:
{
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接口):
这里面显然就open方法比较麻烦,带了一大堆参数,它们的含义分别是: ParameterDescriptionmethodHTTP的通信方式,比如GET, HEAD, POST, PUT, DELETE, CONNECT等url接收数据的服务器的URL地址,URL可带QueryStringboolAsync一个布尔标识,说明请求是否为异步的。如果是异步通信方式,客户端就不等待服务器的响应;如果是同步方式,客户机会等到服务器返回消息后才去执行其它操作bstrUser用户ID,用于服务器身份验证bstrPassword用户密码,用于服务器身份验证
异步通讯的示例:
xmlhttp.onreadystatechange = function()
{
if ( xmlhttp.readyState==4 )
{
alert(xmlhttp.responseText);
}
}
xmlhttp.send(null);
其实使用xmlhttp就这么简单,复杂的是服务器端数据的组织方式,而且需要开发人员同时熟悉Client和Server端的开发,才能事半功倍。可是好像说了半天这个玩意儿和xml没有什么关系啊,怎么叫xmlhttp呢?我们注意到response的数据类型中有一个responseXML,不过它解析返回的XMLDocument属于XMLDOM的内容了,和使用xmlhttp来和服务器通讯的关系并不大,以后再来细说。
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据
- 使用XMLHTTP Request Object获取服务器数据 (转http://www.cnblogs.com/birdshome/archive/2004/12/26/82238.html)
- 用XMLHttp获取服务器页面数据实例
- 解决用javascript获取服务器时间的过程--使用xmlhttp获取服务器时间
- XMLHTTP数刷新获取数据
- 使用request.getInputStream() 获取POST数据
- 使用request.getInputStream() 获取POST数据
- 使用request.getInputStream() 获取POST数据
- 使用request.getInputStream() 获取POST数据
- 反向代理为何叫反向代理?
- 利用fnd_flex_keyval包轻松获取关键性弹性域组合描述字段
- Java中集合(一)Collection 、List<E> 、ArrayList<E>
- Salesforce資格一覧
- 常用的SQL语句
- 使用XMLHTTP Request Object获取服务器数据
- Word公式编排技巧
- 解决webstorm卡顿问题
- mybatis的dao中@param注解
- leetCode 76. Minimum Window Substring
- windows下tomcat设置开机自启
- csapp 2.12
- 使用过滤器对象来对登录成功界面设置权限保护
- Activiti工作流数据库表详细介绍(23张表)