IE下URL 长度问题,请求的参数长度太长

今天用ext开发项目时遇到一个问题,在使用treeLoader时,异步请求一个action,使用格式为:loader = new Ext.tree.TreeLoader({ requestMethod : 'POST',

dataUrl : contextPath+'/GettshowTraceBomAction.action?columns='+columns

}); 
当columns长度超过2024字节时,执行相应操作时 IE 会报 系统找不到制定的资源 错误,上网查了原来时IE浏览器对请求时的URL地址有长度,一般长度限制为2K,超过长度后,JS就会报错,不能正常去请求aciton。
解决方案: 
也是在网上看了资料才知道的, 把参数放在action后面可能时用structs的习惯,但是在ext中,对应的一些loader类,都提供向后台传递参数的属性,具体的属性可以参考ext的API手册,

treeloader的属性时baseParams,在这里面可以定义你所需要的参数,所以上面的写法只需稍改一下即可:

loader=newExt.tree.TreeLoader requestMethod : 'POST',

baseParams :{

path:encodeURIComponent(path),

offering:encodeURIComponent(offer),

columns:showColumns.toString()

}, 
dataUrl : contextPath+'/GettshowTraceBomAction.action'

}); 
初学EXT,好多东西还需要学习,记录下来,避免以后被同样问题困扰。
补充:各种浏览器下URL长度的限制:

    * IE 的 URL 长度上限是 2083 字节,其中纯路径部分不能超过 2048 字节。

    * Firefox 浏览器的地址栏中超过 65536 字符后就不再显示。

    * Safari 浏览器一致测试到 80000 字符还工作得好好的。

    * Opera 浏览器测试到 190000 字符的时候,还正常工作。

你可能感兴趣的:(ext)