这个标题不知道怎么取才好,其实要实现的功能就是在客户端要将大量的数据传递到服务端,我们知道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.send getHtmlStr = StrConv(XmlHttp.ResponseBody, vbUnicode) Set XmlHttp = Nothing vb中下载文件的方法: Dim XmlHttp, Sobj Set XmlHttp = CreateObject("Microsoft.XMLHTTP") XmlHttp.Open ...
而对于POST请求,可以将数据作为参数传递,如`xmlhttp.Send("key=value&anotherKey=anothervalue")`。 3. **处理响应**:通过`ReadyState`属性监控请求状态,当`ReadyState`为4(表示请求完成)且`Status`为200...
` 或 `xmlhttp.send('param1=value1¶m2=value2');` 3. **status** 属性:返回HTTP响应的状态码,如200表示成功,404表示未找到资源,500表示服务器内部错误。 4. **statusText** 属性:返回对应于status属性的...
xmlhttp.send(); ``` 3. `setRequestHeader()`方法:设置HTTP请求头。例如,为POST请求指定Content-Type: ``` xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ``` 三、...
xmlHttp.Send(Null) i = Now() Do DoEvents Loop Until xmlHttp.ReadyState = 4 Or j = DateDiff("s", i, Now()) > 2 If j = 0 Then If xmlHttp.ResponseText = "" Or IsNull(xmlHttp.ResponseText) Then ...
XMLHTTP.send ' 等待请求完成 While XMLHTTP.ReadyState <> 4 DoEvents Wend ' 根据DataStic参数返回不同的响应 Select Case DataStic Case ResponseText GetData = XMLHTTP.ResponseText Case ...
7. **POST请求的使用**:POST请求常用于提交表单数据,通过`setRequestHeader()`设置`Content-Type`,然后在`send()`中传递数据。 8. **异步处理**:异步是XMLHTTP的核心特性,允许在请求进行时继续执行其他脚本,...
ajax 请求头部设置 XMLHTTP中setRequestHeader参数问题
这个“xmlhttp.rar”压缩包包含的资源是关于如何在Delphi环境中使用XMLHTTP组件来从网络获取数据,特别是通过调用百度API获取实时时间的示例。这对于初学者来说是一个很好的起点,因为它可以帮助理解如何与Web服务...
2. `Send`方法:发送请求数据,如果是POST请求,可以传递POST数据。 3. `OnReadyStateChange`事件:当XMLHTTP对象的ReadyState属性发生变化时触发,通常在这里检查状态是否完成(ReadyState = 4),以及请求是否成功...
在易语言中,我们可以通过内置的网络库来实现XMLHTTP的功能,从而实现与服务器的通信,获取或发送数据,而无需刷新整个页面。 首先,我们需要了解易语言中的网络库。易语言提供了丰富的网络函数,包括TCP、UDP、...
XmlHttp.send stime = Now '获取当前时间 While XmlHttp.ReadyState <> 4 DoEvents ntime = Now '获取循环时间 If DateDiff("s", stime, ntime) > 3 Then getHtmlStr = "": Exit Function '判断超出3秒即超时...
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...
在"xmlHTTP.rar"这个压缩包中,我们可能找到了一个关于xmlhttp使用的示例。"xmlHTTP"可能是包含JavaScript代码的文件,该代码展示了如何创建和使用XMLHttpRequest对象来发送HTTP请求并接收响应。通过这种方式,...
在易语言中,可以通过调用Windows API或封装的易语言模块来使用XMLHTTP类,实现网页数据的抓取、Web服务的调用等功能。 首先,我们需要了解XMLHTTP的基本使用方法。在易语言中,可以创建XMLHTTP对象,然后设置其...
xmlhttp.Send(null); ``` 在这里,因为我们是发送 GET 请求,所以没有需要传递的数据,因此 `Send` 方法传入 `null`。 一旦请求完成,我们需要处理响应。这通常通过设置 `onreadystatechange` 事件处理器来实现,它...
xmlHttp.Send ' 检查请求是否成功 If xmlHttp.Status = 200 Then ' 获取并处理服务器返回的时间数据 responseText = xmlHttp.responseText ' 这里需要根据实际返回的数据格式进行解析,假设返回的是ISO 8601格式...