posts - 66,  comments - 40,  trackbacks - 0

    这个标题不知道怎么取才好,其实要实现的功能就是在客户端要将大量的数据传递到服务端,我们知道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+"'";
                }
posted on 2006-08-08 18:12 happytian 阅读(5217) 评论(3)  编辑  收藏

FeedBack:
# re: 使用xmlhttp.send()方法的参数来传递大容量的数据
2007-09-28 15:40 | 狗的鼻子
该问太好了,我正好碰到这个问题。拖福解决,对博主表示感谢!  回复  更多评论
  
# re: 使用xmlhttp.send()方法的参数来传递大容量的数据[未登录]
2007-10-07 15:19 | happytian
不客气,互相学习
  回复  更多评论
  
# re: 使用xmlhttp.send()方法的参数来传递大容量的数据[未登录]
2009-01-15 14:59 | xxx
:)
受教了  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Welcome here, my friend!

常用链接

留言簿(12)

随笔档案(66)

文章分类

文章档案(63)

web

最新随笔

搜索

  •  

积分与排名

  • 积分 - 88671
  • 排名 - 646

最新评论

阅读排行榜

评论排行榜