XMLHTTP对象应用开发初体验

2016-02-19 18:15 3 1 收藏

下面图老师小编跟大家分享XMLHTTP对象应用开发初体验,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

  MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。

  创建XMLHTTP对象的语句如下:

  Set objXML = CreateObject("Msxml2.XMLHTTP") 或
  Set objXML = CreateObject(“Microsoft.XMLHTTP”)
  ' Or, for version 3.0 of XMLHTTP, use:
  ' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP") 

  对象创建后调用Open方法对Request对象进行初始化,语法格式为:

  poster.open http-method, url, async, userID, password 

  Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:

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

  http-method: HTTP的通信方式,比如GET或是 POST

  url: 接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序

  async: 一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作

  userID 用户ID,用于服务器身份验证

  password 用户密码,用于服务器身份验证

  XMLHTTP对象的Send方法

  用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:

  poster.send XML-data 

  Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
  XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:

  值 说明
  0  Response对象已经创建,但XML文档上载过程尚未结束 
  1  XML文档已经装载完毕 
  2  XML文档已经装载完毕,正在处理中 
  3  部分XML文档已经解析 
  4  文档已经解析完毕,客户端可以接受返回消息 

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

  客户机处理响应信息

  客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的:

  ● responseTxt:将返回消息作为文本字符串;

  ● responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;

  ● responseStream:将返回消息视为Stream对象

  ------就是下面这个很简单的JAVASCRIPT函数SEND(STR,URL)---------------

  使用到的是XMLDOM和XMLHTTP对象.用这种技术的好处是:全JS控制,方便/简单,比RDS或者remote好多了.(前提:服务器端和客户端都必须安装IE5或者更高版本),在俺贴的那个无刷新在线信息功能使用的也是这种技术.有兴趣的朋友可以看看..

  function Send(Str,URL)
  //STR参数是传入的XML数据,你也可以传入其他文本数据.
  //不过这个函数需要服务器端处理之后返回XML数据,你也可以修改一下
  //URL参数表示你所要处理数据的ASP文件地址
  {
   var Http = new ActiveXObject("Microsoft.XMLHTTP") //建立XMLHTTP对象
   var Dom = new ActiveXObject("Microsoft.XMLDOM") //建立XMLDOM对象
   Http.open("POST",URL,false)
   //第一个参数的意思是,用"POST"方式发送数据.可以大到4MB,也可以换为"GET".只能256KB
   //第2个参数的意思是数据发送到哪个文件处理
   //第3个参数意思是同步或异步方式.TRUE为异步,FALSE为同步
   Http.send(Str) //开始发送数据.............嘟嘟..
   Dom.async=false //设置为同步方式获取数据
   Dom.loadXML(Http.responseText)
   //开始获取服务器端处理后返回的数据.我在这里设置必须为XML数据,否则出错.
   //你也可以自己修改.使返回的是2进制或者记录集数据.................................
   if(Dom.parseError.errorCode != 0) //检查是否发生获取数据时错误
   {
  delete(Http)
  delete(Dom)
  return(false)
   }
   else
   {
  var Back = Dom.documentElement.childNodes.item(0).text
  //得到返回的XML数据,我这里假设处理程序只返回一行XML数据(一个节点)
  delete(Http)
  delete(Dom)
  return(Back) //函数返回数据.......................结束
   }
  }

  VAR CAT = Send("用户资料姓名谢柠檬/姓名/用户资料","HTTP://WWW.CHINAASP.COM/VIVA.ASP") //执行函数
  IF(CAT == FALSE)
  {
   ALERT("对不起.处理程序返回的是FALSE.数据处理已经失败........")
  }
  ELSE
  {
   IF(EVAL(CAT))
  {
   ALERT("OK.数据已经发送成功.兼以处理完成!!!!!!")
  }
  ELSE
  {
   ALERT("对不起.处理程序返回的是FALSE.数据处理已经失败........")
  }
  }

  ===============================VIVA.ASP============================
  ON ERROR RESUME NEXT
  DIM BOBO
  DIM MOMO
  SET BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
  BOBO.ASYNC = FALSE
  BOBO.LOAD REQUEST
  IF BOBO.PARSEERROR.ERRORCODE 0 THEN
  RESPONSE.WRITE("程序处理结果最终结果FALSE/最终结果/程序处理结果")
  ELSE
  SET MOMO = BOBO.DOCUMENTELEMENT
  IF MOMO.CHILDNODES.ITEM(0).TEXT = "谢柠檬" THEN
  RESPONSE.WRITE("程序处理结果最终结果TRUE/最终结果/程序处理结果")
  ELSE
  RESPONSE.WRITE("程序处理结果最终结果FALSE/最终结果/程序处理结果")
  END IF
  END IF
  SET BOBO = NOTHING 
  

来源:https://www.tulaoshi.com/n/20160219/1617088.html

延伸阅读
金山手机毒霸初体验 智能手机的普及给人们的生活、工作、娱乐带来了极大的方便和快捷,但是和PC上一样,病毒、恶意软件、广告、隐私等问题也如影随形,逐渐泛滥成灾,一不小心就会中招,轻则被频频弹出广告,重则隐私全无、资料被盗,甚至手机被弄瘫痪。 好在安全厂商们也都迅速与时俱进,纷纷开始关注手机平台的安全问题,各种软件...
《龙之信条》demo初体验 标题画面有四个选项 序章:主控一盾一剑的战士,上来一只牛B哄哄的红龙放个豪火球飞走了,一路前进,场景很黑,可以把油灯挂在腰上照明,路上石碑可以召唤队友,组成三物理一法术标准队伍,杀掉几批哥布林和鸟人,出现大怪奇美拉,值得一提的是这个东西无论长相还是死法都和奎秃头宰那只神似...... 编辑模式:可以创建两...
标签: Web开发
AJAX初体验之上手篇 AJAX是这两年蛮热的东西,我也凑凑热闹,前些天去找了些教程学学,下面就按整个处理过程把自己学的东西写写,不过,因为是初学,所以有错误就请见谅啦,欢迎指正^_^。 1.创建 XMLHttpRequest 对象 现在的浏览器有很多种,创建 XMLHttpRequest 的方法也不相同,所以为了兼容各种浏览器,在创建 XMLHttpRequest 时也应该考...
标签: 电脑入门
今天打开QQ,偶然间看到QQ推出了一项更加安全的防护措施—QQ密保令牌,相比之前的密保卡、手机短信验证,此次推出的动态QQ密保令牌更加的实用、方便。大家都知道网易和盛大在游戏方面都推出过将军令及盛大密宝,而QQ密保令牌与这些安全措施的工作原理是一样的:每个密保令牌有一个独有的数组矩阵,这个矩阵结合实时时间参数通过一个特有的...
标签: Web开发
在 JQuery的网站 上发现,这个东东提供两种版本下载。一种是原版,接近120K,另一种是把水分压缩掉的,近60K。太久没做应用技术了,没想到居然出来了这么多新鲜玩意儿,JavaScript还可以压缩水分,所以顺便又去了解了一下 JavaScript的Packer (这是在线链接),如果有兴趣, 这里 可以下载它的.NET、Perl、Wsh和PHP等几个版本。 不扯远了,...

经验教程

482

收藏

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