Dzwebs.Net

撰写电脑技术杂文十余年

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

Admin | 2015-6-19 5:48:17 | 被阅次数 | 2766

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  如果在页面中使用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();


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231