xmlhttp 传递变量消失_使用xmlhttp.send()方法的参数来传递容量大且复杂的数据
现的功能就是在客户端要将大量的数据传递到服务端,我们知道url的长度是有限制的,如果使用url的参数来传递数据,只能传递很少的关键信息,但有时候我们要传递大量的信息,比如一张单据中的所有商品的商品编号等等.
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
{varnode=xmlDom.createElement("guid");
node.text=guidArray[i];
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=newBinaryReader(instream,System.Text.Encoding.UTF8);byte[] byt=br.ReadBytes((int)instream.Length);stringsXml=System.Text.Encoding.UTF8.GetString(byt);
System.Xml.XmlDocument xmlDoc=newSystem.Xml.XmlDocument();
xmlDoc.LoadXml(sXml);
XmlElement xe=xmlDoc.DocumentElement;for(inti=0;i
{
sGuid=sGuid+",'"+xe.ChildNodes[i].InnerText+"'";
}
以下是现在项目中的一个例子
function load() {
if(!validate())
return;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
form1.res_xml.value = xmlhttp.responseText ;
} else if (xmlhttp.readyState == 4) {
alert(xmlhttp.status);
}
}
xmlhttp.open("POST", form1.input_url.value, true);
xmlhttp.setRequestHeader(form1.hname1.value, form1.hvalue1.value);
xmlhttp.setRequestHeader(form1.hname2.value, form1.hvalue2.value);
xmlhttp.setRequestHeader(form1.hname3.value, form1.hvalue3.value);
xmlhttp.setRequestHeader(form1.hname4.value, form1.hvalue4.value);
xmlhttp.send(form1.req_xml.value);
}
}
function validate(){
if(form1.hvalue1.value == "" ||
form1.hvalue2.value == "" ||
form1.hvalue3.value == "" ||
form1.hvalue4.value == "") {
alert("全てのリクエストヘッダの値を入力してください。");
return false;
}
if(form1.input_url.value == "") {
alert("アクセスURLを入力してください。");
return false;
}
return true;
}
TERASOLUNAテストクライアント
start mp client
リクエストヘッダ:
値
値
値
値
要求電文:
URL:
送信
応答電文:
xmlhttp 传递变量消失_使用xmlhttp.send()方法的参数来传递容量大且复杂的数据相关推荐
- Java黑皮书课后题第7章:*7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置。改写方法将参数中传递的数组倒置,并返回该数组。编写一个测试程序,输入10个数字,倒置它们并显示
7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置.改写方法将参数中传递的数组倒置,并返回该数组.编写一个测试程序,输入10个数字,倒置它们并显示 题目 题目描述 破题 代码 ...
- java中类作为成员变量类型使用、接口作为成员变量类型使用、接口作为方法的参数或返回值使用
类作为成员变量类型使用: 自定义的类也可以作为成员变量使用,如: // 1.创建一个电脑角色的类: public class Computer{private String computername; ...
- ode matlab传递变量,一个时变ode求解例子——以及如何向myode传递附加参数
//matlab2011b帮助文档自带的. Example 3 This example solves an ordinary differential equation with time-depe ...
- php通过url传递变量,PHP:如何在模态URL中放置和传递变量
所以,我有一个按钮,可以在同一页面中直接链接到模态. 这是按钮和网址 href="main_user.php?user_id=<?php echo $user['user_id']; ...
- send的内容ajax,Ajax中send方法的使用
一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null. 例如 : var url = " ...
- Python笔记_23_正则相关函数_类中的方法_装饰器_异常
文章目录 正则相关函数 search 和 match split 切割 sub 替换 finditer 匹配字符串中相应内容,返回迭代器 compile 指定一个统一的匹配规则 正则表达式的修饰符 类 ...
- ajax的send方法参数格式,Ajax中send参数
一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null. 例如: var url = "l ...
- python特性(八):生成器对象的send方法
生成器对象是一个迭代器.但是它比迭代器对象多了一些方法,它们包括send方法,throw方法和close方法.这些方法,主要是用于外部与生成器对象的交互.本文先介绍send方法. send方法有一个参 ...
- Python生成器对象send()方法用法
关于生成器基本用法请参考详解Python生成器函数和生成器对象的原理和用法 >>> def f(): yield from 'abcdefg' #使用yield表达式 ...
最新文章
- 80年代高考数学卷,共10套,有您做过的高考卷吗?
- android使用C/C++调用SO库
- 被遮挡的绝对定位 z-index
- php李捷,【问题解答】蝶泳手外划的作用
- AJAX ControlToolkit学习日志-Tabs(27)
- 移动端之flexible.js
- 360 php SQL注入,php中sql注入漏洞示例
- 成功解决微信浏览器实现自动下载功能
- Java 输入输出流学习总结
- 设置内外网同时使用,重新配置路由
- [读书]《罗辑思维》第一季、第二季推荐书籍清单
- linux服务器怎么拷贝文件,linux 服务器之间拷贝文件
- mysql 中的 SCHEMATA 表
- 微信小程序扫一扫和微信自带的扫一扫 获取二维码的url包括参数数据
- 【深度学习】word2vec(上)
- 【王道OJ】每日上传一个王道OJ代码
- python从文件中提取特定文本_python利用正则表达式提取文本中特定内容
- linux 查看端口占用总数_Linux查看某个端口的连接数
- 九度OJ 1103:二次方程计算器 (解方程)
- S7-200SMART案例分析——运动控制编程(二)