使用 Dojo 传递非常长的 URI 时遇到 414 Request-URI Too Large dojox.layout.ContentPane
Encountering 414 Request-URI Too Large when passing a really long URI using Dojo's dojox.layout.ContentPane
我的应用程序是一个 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");
希望这对其他人有帮助
您可以通过设置其 ioMethod
属性(默认为 dojo/_base/xhr.get
)来覆盖 ContentPane 实例使用的 XHR 方法。将其设置为 xhr.post
将导致它发送 POST 请求。
(请注意,您应该向它传递来自 dojo/_base/xhr
、 而不是 dojo/request/xhr
的方法,因为 ContentPane 与旧的 API 交互。 )
我的应用程序是一个 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");
希望这对其他人有帮助
您可以通过设置其 ioMethod
属性(默认为 dojo/_base/xhr.get
)来覆盖 ContentPane 实例使用的 XHR 方法。将其设置为 xhr.post
将导致它发送 POST 请求。
(请注意,您应该向它传递来自 dojo/_base/xhr
、 而不是 dojo/request/xhr
的方法,因为 ContentPane 与旧的 API 交互。 )