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请求要求用户名和口令,则在bstrUser,bstrPassword中设置.
Sub send ([varBody])
向服务器发送一个HTTP请求,并获取返回结果.
varBody为要发送到服务器的数据,通常在POST方式下使用.
Sub setRequestHeader(bstrHeader As String, bstrValue As String)
在请求header中设置bstrHeader/bstrValue值对并发送到服务器端.
例:

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响应得到的返回原始信息,内容的编码方式决定于请求的服务器端(UTF-8, UCS-2, UCS-4, Shift_JIS等)

responseText

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

responseStream

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

responseXML

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

status

HTTP返回代码.
200 - 成功
404 - 错误请求
500 - 服务器内部错误,等等. 详见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方法发送数据到web服务器
<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
2 - http://jibbering.com/2002/4/httprequest.html

转载于:https://www.cnblogs.com/qxoffice2008/p/3929215.html

XMLHTTP使用详解相关推荐

  1. 详解XMLHTTP中setRequestHeader方法和参数

    详解XMLHTTP中setRequestHeader方法和参数 setRequestHeader("Content-type", "application/x-www-f ...

  2. java web编码详解_java web 开发 编码问题详解

    java web 开发 编码问题详解 浏览器 IE/FireFox ------------->Servlet容器-------------------------->显示页面 编码   ...

  3. WebService入门详解

    1.什么是webservice 先来考虑一个问题,如果我们要在自己的程序里面展示天气预报,那怎么弄?正确的做法是我们发送一个请求到一个系统,他会给我们返回来天气情况.这个就是一个webservice. ...

  4. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  5. ajax 页面无刷新,Ajax的页面无刷新实现详解(附代码)

    这次给大家带来Ajax的页面无刷新实现详解(附代码),Ajax页面无刷新实现的注意事项有哪些,下面就是实战案例,一起来看一下. ajax (ajax开发) AJAX即"Asynchronou ...

  6. 【转】4.1触碰jQuery:AJAX异步详解

    传送门:异步编程系列目录-- 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 X ...

  7. 新手入门:史上最全Web端即时通讯技术原理详解

    前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...

  8. php页面自分页刷新,详解PHP+AJAX无刷新分页实现方法

    PHP+AJAX无刷新分页实现代码详解,最近在看ajax 教程,就想写个简单入门的PHP+AJAX无刷新分页,我们依据ajax开发框架,代码如下: var http_request=false; fu ...

  9. Web.config详解+asp.net优化(1)

    一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方式) ...

  10. Web.config详解+asp.net优化

    Web.config详解+asp.net优化(1) 一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的 ...

最新文章

  1. linux centos7 root密码重置方法
  2. 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )
  3. 软件材料填写中的行数统计和代码文本合并
  4. 什么是服务的幂等?为什么要实现幂等?
  5. 速学c++(2)-helloworld工程
  6. 'fopen' This function or variable may be unsafe
  7. 4.线性和卷积——相关与卷积、卷积的属性、计算复杂度和可分性_2
  8. linux磁盘写保护怎么修改_linux系统怎么避免u盘被写保护
  9. 男人的爱只有一次----女孩你珍惜了吗
  10. Unreal Engine UE4虚幻引擎,创建Sky天空球,球天材质,自制天空球(HDR高动态范围贴图)
  11. GIS要学哪种计算机语言,做好一名ArcGIS开发人员所需要掌握的知识
  12. 高价值的聚合支付源码修复版+带后台/语音播报
  13. The computer is being attacked
  14. html中哪些字体不识别中文字体,div字体_正确设置div兼容的汉字中文字体
  15. 人工智能基础——知识的概念
  16. 疫情已经结束,快递行业现状如何
  17. 淘淘商城第24讲——实现商品类目的选择
  18. 小程序 JSON.stringify() 和 JSON.parse() 的使用
  19. MySQL一般读作什么_MySQL入门必做练习题50题(一) 创建表
  20. 研发效能怎么分析?方法论、模型、误区都在这里了

热门文章

  1. PGM:基于模板的表示
  2. 海量数据挖掘MMDS week4: 推荐系统之隐语义模型latent semantic analysis
  3. Matplotlib Toolkits:三维绘图工具包matplotlib.mplot3d
  4. Ubuntu18.04配置Jupyter
  5. 利用dlib库(Python)实现实时(摄像头)人脸检测以及特征点标定(landmark))
  6. linux中运行环境变量,linux下的环境变量详解
  7. 如何解决js引入混乱_做个笔记,图片如何实现懒加载(LazyLoad按需加载)
  8. git 拉取远程的dev分支到本地的dev分支,再跟本地的my分支合并
  9. Java面试通关要点汇总整理
  10. Ubuntu18 mongodb 离线安装