在使用 Dojo 的 dojox.layout.ContentPane 传递很长的 URI 时遇到 414 请求 URI 太大



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

希望这对其他人有所帮助

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

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

最新更新