`
zhaixoahu
  • 浏览: 136098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用xmlhttp.send()方法的参数来传递大容量的数据

阅读更多

   这个标题不知道怎么取才好,其实要实现的功能就是在客户端要将大量的数据传递到服务端,我们知道url的长度是有限制的,如果使用url的参数来传递数据,只能传递很少的关键信息,但有时候我们要传递大量的信息,比如一张单据中的所有商品的商品编号等等.
    Ajax技术中的xmlhttp.send()方法提供我们传送大量数据的功能,要使用该功能,首先要将要传到服务端的数据封装在一个xml对象中,在将这个xml对象的xml属性做为send()方法的参数就可以.
    客户端代码:

                     var  guidArray = guidlist.split( " , " );
                    
var  xmlDom = new  ActiveXObject( " MSXML2.DOMDocument " );
                    xmlDom.loadXML(
"" );
                    
var  domRoot =  xmlDom.createElement( " NewDataSet " );
                    xmlDom.appendChild(domRoot);
                    
for ( var  i = 0 ;i < guidArray.length;i ++ )
                    {
                       
var  node =  xmlDom.createElement( " guid " );
                       node.text
= guidArray[i];
                       domRoot.appendChild(node);                       
                    }
                    
                    
var  xmlhttp = new  ActiveXObject( " MSXML2.XMLHTTP " );                    
                    xmlhttp.onreadystatechange
= function (){
                            
if  (xmlhttp.readyState == 4 )
                            {
                              
if  (xmlhttp.status == 200 )
                              {
                                 alert(
" 处理完成 " );
                              }
                              
else
                              {
                                 alert(xmlhttp.responseText);  
                              }
                            }
                                  
                    }
                    xmlhttp.Open(
" POST " , " fmSmsPostProcess.aspx?sStatus= " + escape(sStatus) + " &sProcessResult= " + escape(document.getElementById( " btProcessResult " ).value) +
                                         
" &sReStore= " + escape(document.getElementById( " btReStore " ).value), true );
                    xmlhttp.setRequestHeader(
" Content-Type " , " text/xml " );                                         
                    xmlhttp.send(xmlDom.xml);

服务端需要从请求流中,解析出客户端传入的xml的内容,服务端代码:
                System.IO.Stream instream = Page.Request.InputStream;
                BinaryReader br 
= new BinaryReader(instream,System.Text.Encoding.UTF8);
                
byte[] byt = br.ReadBytes((int)instream.Length);
                
string sXml = System.Text.Encoding.UTF8.GetString(byt);

                System.Xml.XmlDocument xmlDoc 
= new System.Xml.XmlDocument();
                xmlDoc.LoadXml(sXml);

                XmlElement xe
= xmlDoc.DocumentElement;
                
for(int i=0;i< xe.ChildNodes.Count;i++)
                {
                    sGuid 
= sGuid + ",'" + xe.ChildNodes[i].InnerText+"'";
                }

分享到:
评论

相关推荐

    xmlhttp说明文档,xmlhttp中文帮助文档,chm格式

    XmlHttp.send getHtmlStr = StrConv(XmlHttp.ResponseBody, vbUnicode) Set XmlHttp = Nothing vb中下载文件的方法: Dim XmlHttp, Sobj Set XmlHttp = CreateObject("Microsoft.XMLHTTP") XmlHttp.Open ...

    xmlhttp.rar_xmlhttp

    而对于POST请求,可以将数据作为参数传递,如`xmlhttp.Send("key=value&anotherKey=anothervalue")`。 3. **处理响应**:通过`ReadyState`属性监控请求状态,当`ReadyState`为4(表示请求完成)且`Status`为200...

    XmlHttp.rar_xmlhttp

    ` 或 `xmlhttp.send('param1=value1&param2=value2');` 3. **status** 属性:返回HTTP响应的状态码,如200表示成功,404表示未找到资源,500表示服务器内部错误。 4. **statusText** 属性:返回对应于status属性的...

    Microsoft.XMLHttp组件的属性方法

    xmlhttp.send(); ``` 3. `setRequestHeader()`方法:设置HTTP请求头。例如,为POST请求指定Content-Type: ``` xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ``` 三、...

    VB使用Microsoft.XMLHTTP判断程序是否联入互联网

    xmlHttp.Send(Null) i = Now() Do DoEvents Loop Until xmlHttp.ReadyState = 4 Or j = DateDiff("s", i, Now()) &gt; 2 If j = 0 Then If xmlHttp.ResponseText = "" Or IsNull(xmlHttp.ResponseText) Then ...

    VB使用XMLHTTP实现Post与Get的方法

    XMLHTTP.send ' 等待请求完成 While XMLHTTP.ReadyState &lt;&gt; 4 DoEvents Wend ' 根据DataStic参数返回不同的响应 Select Case DataStic Case ResponseText GetData = XMLHTTP.ResponseText Case ...

    XMLHTTP.rar_xmlhttp

    7. **POST请求的使用**:POST请求常用于提交表单数据,通过`setRequestHeader()`设置`Content-Type`,然后在`send()`中传递数据。 8. **异步处理**:异步是XMLHTTP的核心特性,允许在请求进行时继续执行其他脚本,...

    XMLHTTP中setRequestHeader参数问题

    ajax 请求头部设置 XMLHTTP中setRequestHeader参数问题

    xmlhttp.rar_XMLHTTP delphi_delphi xmlHt_delphi xmlhttp_xmlhttp

    这个“xmlhttp.rar”压缩包包含的资源是关于如何在Delphi环境中使用XMLHTTP组件来从网络获取数据,特别是通过调用百度API获取实时时间的示例。这对于初学者来说是一个很好的起点,因为它可以帮助理解如何与Web服务...

    易语言源码XMLHTTP方式访问网页.rar

    在易语言中,我们可以通过内置的网络库来实现XMLHTTP的功能,从而实现与服务器的通信,获取或发送数据,而无需刷新整个页面。 首先,我们需要了解易语言中的网络库。易语言提供了丰富的网络函数,包括TCP、UDP、...

    WEB QQ登录VB实例

    XmlHttp.send stime = Now '获取当前时间 While XmlHttp.ReadyState &lt;&gt; 4 DoEvents ntime = Now '获取循环时间 If DateDiff("s", stime, ntime) &gt; 3 Then getHtmlStr = "": Exit Function '判断超出3秒即超时...

    XMLHTTP对象参考手册

    客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...

    xmlHTTP.rar_xmlhttp_xmlhttp java_xmlhttp下载

    在"xmlHTTP.rar"这个压缩包中,我们可能找到了一个关于xmlhttp使用的示例。"xmlHTTP"可能是包含JavaScript代码的文件,该代码展示了如何创建和使用XMLHttpRequest对象来发送HTTP请求并接收响应。通过这种方式,...

    易语言源码易语言XMLHTTP类模块源码.rar

    在易语言中,可以通过调用Windows API或封装的易语言模块来使用XMLHTTP类,实现网页数据的抓取、Web服务的调用等功能。 首先,我们需要了解XMLHTTP的基本使用方法。在易语言中,可以创建XMLHTTP对象,然后设置其...

    获取百度网络时间,Microsoft.XMLHTTP实例

    xmlHttp.Send ' 检查请求是否成功 If xmlHttp.Status = 200 Then ' 获取并处理服务器返回的时间数据 responseText = xmlHttp.responseText ' 这里需要根据实际返回的数据格式进行解析,假设返回的是ISO 8601格式...

    使用XMLHTTP获取天气预报

    xmlhttp.Send(null); ``` 在这里,因为我们是发送 GET 请求,所以没有需要传递的数据,因此 `Send` 方法传入 `null`。 一旦请求完成,我们需要处理响应。这通常通过设置 `onreadystatechange` 事件处理器来实现,它...

    Ajax 给 XMLHttpReq.onreadystatechange传递参数

    在JavaScript中,有两种常见的方法来实现这一目标: 1. **匿名函数包裹**: 你可以将需要调用的函数(例如`proce`)包裹在一个匿名函数中,并将参数作为参数传递给这个匿名函数。例如: ```javascript xmlhttp....

Global site tag (gtag.js) - Google Analytics