大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

xmlhttp url字符太长导致无法传送的问题

Admin | 2015-6-19 5:48:17 | ReadNums | 931 | 标签 asp.net | 打印本页
     

  如果在页面中使用xmlhttp无刷新收发数据的话,常常会用到get方式。一般URL会连着写成一串,这就导致一个问题的产生了,如果这个URL的字符太多的话,就会错误,比如下面的代码:

  var url ="Excel.ashx?MyValue1="+escape(Value1)+"&MyValue2="+escape(Value2)+"&MyValue3="+escape(Value3);
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = UpdatePage;
  xmlHttp.send(null); 

  请大家仔细看清楚,上面共有三个参数,试问,万一哪个参数的值很长的话,比如MyValue1参数的值其内容万一有几万个字,势必会造成URL的字符数量太长而导致错误的问题。

  如何来解决这个问题呢?使用post方式传送数据即可。改为如下:

  var url ="Excel.ashx";
  var PostData="MyValue1="+escape(Value1)+"&MyValue2="+escape(Value2)+"&MyValue3="+escape(Value3);
  xmlHttp.open("POST", url, true);
  xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  xmlHttp.onreadystatechange = UpdatePage;
  xmlHttp.send(PostData)

  看到了吧,就改三行而已,现在,问题就得到解决了,不管参数的数据内容有多少,字符有多长,都能正常的传输。

  当然了,换了POST发送数据之后,相应的,在服务器端的页面,接收参数方式,也得改了,改为如下,比如:

  string GetPar1 = context.Request.Params["MyValue1"].ToString();

  原来是下面这个哦:

  string GetPar1 = context.Request.QueryString["MyValue1"].ToString();


问题未解决:搜索文章

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
感谢大家的支持。
20xx年x月x日

……