0

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

我读过使用 POST HTTP 方法可以完全解决这个问题,但 ContentPane 似乎不支持它。接受任何可能的解决方案或解决方法

从 Dojo IRC #dojo 中的“tk”中找到有关 ContentPane.ioMethod 的信息

<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");

希望这对其他人有帮助

4

1 回答 1

1

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

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

于 2015-04-15T22:00:33.140 回答