使用Dojo的dojox.layout.ContentPane传递一个非常长的URI时遇到414 Request-URI太大

时间:2015-04-15 07:41:36

标签: java jsp tomcat dojo request-uri

我的应用程序是一个Java Tomcat WebApp,它使用Dojo js工具包作为我们网页的框架。我的一个表单页面涉及使用Dojo的dojox.layout.ContentPane将大量字符串数据传递到另一个表单页面。 ContentPane传递所有参数并使用GET加载相应的页面,但导致414 Request-URI太大,因为这超出了Apache的LimitRequestLine

我已经读过使用POST HTTP方法可以解决这个问题,但是ContentPane似乎不支持它。接受此

的任何可能的解决方案或解决方法

在Dojo IRC中找到关于ContentPane.ioMethod的'tk'#dojo

<div class="contentPanel" id="contentPanel" data-dojo-type="dojox/layout/ContentPane" data-dojo-props="**ioMethod: dojo.xhrPost**">

以下内容适用于通过ioArgs将正确的POST表单数据传递给ContentPane:

var obj = {val1: val1}
registry.byId("contentPanel").set("ioArgs",{content: obj}); 
registry.byId("contentPanel").setHref("whateverPage");

希望这有助于其他人

1 个答案:

答案 0 :(得分:1)

您可以通过设置其ioMethod属性(默认为dojo/_base/xhr.get)来覆盖ContentPane实例使用的XHR方法。将其设置为xhr.post将导致它发送POST请求。

(请注意,您应该从dojo/_base/xhr而不是 dojo/request/xhr传递一个方法,因为ContentPane会与旧API进行交互。)