当前位置: 代码迷 >> Java Web开发 >> js 关于encodeURI编码有关问题,(有用到JQuery做ajax处理,程序是java开发的)
  详细解决方案

js 关于encodeURI编码有关问题,(有用到JQuery做ajax处理,程序是java开发的)

热度:7108   发布时间:2013-02-25 21:18:21.0
js 关于encodeURI编码问题,急!(有用到JQuery做ajax处理,程序是java开发的)

js 关于encodeURI编码问题,急!(有用到JQuery做ajax处理,程序是java开发的)
(js文件中)代码片段如下:
var proCodes = document.getElementById("proCodes").value;
proCodes = encodeURI(proCodes);
var url = "selectBalanceName.action?proCodes="+proCodes;
$.post(url,null,function(data){
  if(data != null && data != ""){
  ...
  }
}

问题:
当代码执行到“$.post(url,null,function(data){”时,js报错:未指明错误(程序还未进入后台代码,只是前端报错)。
“proCodes”变量是我从页面中获得的值,这个值大概是:例如“办公费@”“办公费@差旅费@”“办公费@差旅费@会议费@”...
有个情况是,这个变量内容少点程序正常,一旦很长的话,就报错,很奇怪。但是,把encodeURI去掉,就没什么问题了,不过后台得到的值是乱码啊。急!!

恳请各位大虾们帮帮小弟如何解决这个问题


------解决方案--------------------------------------------------------
各个浏览器GET方式提交参数时会有长度限制,所以用POST提交,但是你上面的不是真正的POST提交,参数不要写在路径后面!!!
* IE 的 URL 长度上限是 2083 字节,其中纯路径部分不能超过 2048 字符。 
* Firefox 浏览器的地址栏中超过 65536 字符后就不再显示。 
* Safari 浏览器一致测试到 80000 字符还工作得好好的。 
* Opera 浏览器测试到 190000 字符的时候,还正常工作。
  相关解决方案