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

阅读更多
使用xmlhttp.send()方法的参数来传递大容量的数据
Posted on 2009-01-12 16:31 MARTIALIS 阅读(624) 评论(0) 编辑 收藏 所属分类: ASP.NET
Ajax技术中的xmlhttp.send()方法提供我们传送大量数据的功能,要使用该功能,首先要将要传到服务端的数据封装在一个xml对象中,在将这个xml对象的xml属性做为send()方法的参数就可以.
    客户端代码:
                     var  guidArray = guidlist.split( " , " );
                     var  xmlDom = new  ActiveXObject( " MSXML2.DOMDocument " );
                    xmlDom.loadXML( "" );
                     var  domRoot =  xmlDom.createElement_x( " NewDataSet " );
                    xmlDom.appendChild(domRoot);
                     for ( var  i = 0 ;i < guidArray.length;i )
                    {
                        var  node =  xmlDom.createElement_x( " 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.getElementByIdx_x( " btProcessResult " ).value)
                                          " &sReStore= " escape(document.getElementByIdx_x( " 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.send()方法的参数来传递大容量的数据)