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

2 - http://jibbering.com/2002/4/httprequest.html

XMLHTTP使用具体解释,布布扣,bubuko.com

时间: 2024-08-07 13:16:44

XMLHTTP使用具体解释的相关文章

Web世界的ajax

AJAX AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

Ajax技术基础

对于AJAX技术,感觉以前虽然用过但是对于AJAX没有一个清晰的认识,今天专门总结一下,希望掌握的更加牢固吧! 一,什么是AJAX? AJAX通常被叫做异步刷新技术,其实他也是可以同步的.主要都用于异步访问服务器. 在通常情况下,我们的页面都是静态的,如果想要与服务器交互,我们可以通过一系列的手段来向服务器发送请求,并将返回的信息展示在页面上,但是通常需要刷新页面,如果不停的请求就需要不停的刷新整个页面,这对于客户而言带来很大的麻烦,尤其是网速很慢的情况,本来只需要更改页面一小点地方的信息,却要

js注册检测 用户名、密码、手机号、邮箱

请输入电话号码:<input name="" type="text" id="telphone" value=""/><br /> 请输入邮箱地址:<input name="" type="text" id="mail" value="" /><br /> 请第一次输入密码:<input nam

AJAX之学习笔记(持续更新......)

以前的学习都是在Evernote上做的笔记,之前也在博客园注册过,但是一直没用,就荒废了.最近想既然是学技术的,用这个来记我的一些日常学习笔记是在好不过了. 总之加油吧~~~希望自己能早日摆脱新手这个称呼嘻嘻(*^__^*) 1.AJAX的定义 AJAX=Asynchronous JavaScript and XML(异步的JavaScript和XML)——此处应先了解HTML.XHTML.CSS.JavaScript和DOM结构. AJAX是一种新方法,不是新的编程语言,可以在不需要重新加载网

AJAX 请求实例

AJAX ASP/PHP 实例 下面的例子将为您演示当用户在输入框中键入字符时,网页如何与 web 服务器进行通信: 请在下面的输入框中键入字母(A - Z): 姓氏: 实例解释 - showHint() 函数 当用户在上面的输入框中键入字符时,会执行函数 "showHint()" .该函数由 "onkeyup" 事件触发: function showHint(str) { var xmlhttp; if (str.length==0) { document.get

xmlhttp.readyState的值及解释:

xmlhttp.readyState的值及解释: 0:请求未初始化(还没有调用 open()). 1:请求已经建立,但是还没有发送(还没有调用 send()). 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头). 3:请求在处理中:通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成. 4:响应已完成:您可以获取并使用服务器的响应了. xmlhttp.status的值及解释: 100--客户必须继续发出请求 101--客户要求服务器根据请求转换HTTP协议版本 200--交易

具体解释Ajax技术

Ajax 可以做什么? 现在 Google Suggest 和 Google Maps 使用了 Ajax,通过 Ajax,我们能够使得client得到丰富的应用体验及交换操作,而用户不会感觉到有网页提交或刷新的过程,页面也不须要被又一次载入,应用的数据交换都被隐藏. 传统的 WEB 应用程序模型是这样工作的:用户的界面操作触发 HTTP 请求,server在接收到请求之后进行一些业务逻辑处理,如保存数据等,然后向client返回一个 HTML 页面.但这样的方式并没有给予用户非常好的应用体验,当

【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)

一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Ajax是什么之前,先让我们花一分钟了解一下Ajax做什么.如图所看到的: 如上图展示给我们的就是使用Ajax技术实现的效果.伴随着web应用的越来越强大而出现的是等待.等待server响应,等待浏览器刷新.等待请求返回和生成新的页面成为了程序猿们的最最头疼的难题.随着Ajax的出现使web应用程序变得