jeffrey_sun 发表于 2013-1-23 02:45:34

Ajax学习笔记

Ajax技术中的xmlhttp.send()方法提供我们传送大量数据的功能,要使用该功能,首先要将要传到服务端的数据封装在一个xml对象中,在将这个xml对象的xml属性做为send()方法的参数就可以:
                     varguidArray = guidlist.split( " , " );
                     varxmlDom = newActiveXObject( " MSXML2.DOMDocument " );
                     xmlDom.loadXML( "" );
                     vardomRoot =xmlDom.createElement( " NewDataSet " );

                     xmlDom.appendChild(domRoot);
                     for ( vari = 0 ; i < guidArray.length; i ++ )
                  {
                        varnode =xmlDom.createElement( " guid " );
                     node.text = guidArray ;
                     domRoot.appendChild(node);                     
                  }
                  
                  varxmlhttp = newActiveXObject( " 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.InnerText+"'";
                }
页: [1]
查看完整版本: Ajax学习笔记