现的功能就是在客户端要将大量的数据传递到服务端,我们知道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()方法的参数来传递容量大且复杂的数据相关推荐

  1. Java黑皮书课后题第7章:*7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置。改写方法将参数中传递的数组倒置,并返回该数组。编写一个测试程序,输入10个数字,倒置它们并显示

    7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置.改写方法将参数中传递的数组倒置,并返回该数组.编写一个测试程序,输入10个数字,倒置它们并显示 题目 题目描述 破题 代码 ...

  2. java中类作为成员变量类型使用、接口作为成员变量类型使用、接口作为方法的参数或返回值使用

    类作为成员变量类型使用: 自定义的类也可以作为成员变量使用,如: // 1.创建一个电脑角色的类: public class Computer{private String computername; ...

  3. ode matlab传递变量,一个时变ode求解例子——以及如何向myode传递附加参数

    //matlab2011b帮助文档自带的. Example 3 This example solves an ordinary differential equation with time-depe ...

  4. php通过url传递变量,PHP:如何在模态URL中放置和传递变量

    所以,我有一个按钮,可以在同一页面中直接链接到模态. 这是按钮和网址 href="main_user.php?user_id=<?php echo $user['user_id']; ...

  5. send的内容ajax,Ajax中send方法的使用

    一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null. 例如 : var url = " ...

  6. Python笔记_23_正则相关函数_类中的方法_装饰器_异常

    文章目录 正则相关函数 search 和 match split 切割 sub 替换 finditer 匹配字符串中相应内容,返回迭代器 compile 指定一个统一的匹配规则 正则表达式的修饰符 类 ...

  7. ajax的send方法参数格式,Ajax中send参数

    一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null. 例如: var url = "l ...

  8. python特性(八):生成器对象的send方法

    生成器对象是一个迭代器.但是它比迭代器对象多了一些方法,它们包括send方法,throw方法和close方法.这些方法,主要是用于外部与生成器对象的交互.本文先介绍send方法. send方法有一个参 ...

  9. Python生成器对象send()方法用法

    关于生成器基本用法请参考详解Python生成器函数和生成器对象的原理和用法 >>> def f():     yield from 'abcdefg'     #使用yield表达式 ...

最新文章

  1. 80年代高考数学卷,共10套,有您做过的高考卷吗?
  2. android使用C/C++调用SO库
  3. 被遮挡的绝对定位 z-index
  4. php李捷,【问题解答】蝶泳手外划的作用
  5. AJAX ControlToolkit学习日志-Tabs(27)
  6. 移动端之flexible.js
  7. 360 php SQL注入,php中sql注入漏洞示例
  8. 成功解决微信浏览器实现自动下载功能
  9. Java 输入输出流学习总结
  10. 设置内外网同时使用,重新配置路由
  11. [读书]《罗辑思维》第一季、第二季推荐书籍清单
  12. linux服务器怎么拷贝文件,linux 服务器之间拷贝文件
  13. mysql 中的 SCHEMATA 表
  14. 微信小程序扫一扫和微信自带的扫一扫 获取二维码的url包括参数数据
  15. 【深度学习】word2vec(上)
  16. 【王道OJ】每日上传一个王道OJ代码
  17. python从文件中提取特定文本_python利用正则表达式提取文本中特定内容
  18. linux 查看端口占用总数_Linux查看某个端口的连接数
  19. 九度OJ 1103:二次方程计算器 (解方程)
  20. S7-200SMART案例分析——运动控制编程(二)

热门文章

  1. 面向对象编程(基础部分)
  2. 《学习科学与技术》——从中学生学习的角度来看学习动机的激发
  3. 母婴副业怎么做?微商做母婴用品怎么样?
  4. 数值分析(六):C++实现非奇异矩阵A的LU分解
  5. c语言 递归 求公约数,递归求最大公约数
  6. 路径、连通、连通图,强连通图、连通分量、极大连通子图以及割点、割边保姆级解释
  7. 关于目前uni-app渲染性能以及混合开发的大方向的若干思考
  8. [LeetCode]045-Jump Game II
  9. Linux中各命令英文缩写的含义
  10. 原作者彤砸(诶嘿嘿《聊聊我的故事 | 带一只柚子上路》【转载】