Liferay.Util.openWindow 与 POST URL? (为了允许更长的参数)

Liferay.Util.openWindow with a POST URL? (in order to allow longer parameters)

在我的 Liferay 7 JSP 中,我打开了一个向 Liferay portlet 发起请求的弹出窗口(该 portlet 转换文本并将结果发回以在弹出窗口中显示):

<liferay-portlet:renderURL
        portletName="<%= portletId %>"
        var="uri"
        windowState="<%=LiferayWindowState.POP_UP.toString()%>">
    <portlet:param name="text" value="TEXTPLACEHOLDER" />
</liferay-portlet:renderURL>

<aui:script>
function transformTextAndShowPopup() {
    var uri = "<%= uri %>";
    uri = uri.replace("TEXTPLACEHOLDER", readTextEnteredByUser());

    javascript:Liferay.Util.openWindow({
        dialog:{
            width: 700,
            height: 300,
            resizable: true,
            modal:false,
            destroyOnClose: true
        },
        id: "My popup",
        title: "My popup",
        uri: uri
    });
</aui:script>

它非常适合...用于短文本。

问题:我现在也需要处理长文本。我不能再依赖 GET 参数了,因为 GET parameters can not be over a few kilobytes。尝试突破极限会导致:

The server refused this request because the request URI was too long.

问题:我可以使用 POST 请求启动 Liferay.Util.openWindow 吗?或者以其他方式打开带有长文本的 Liferay 弹出窗口? (大约 30 KB)

我的建议是显示带有加载图标的对话框作为内容。 然后 post 通过 Ajax POST 查询 actionURL 的文本(使用 A.io.request 或 jQuery),一旦完成,您只需替换对话框的内容 window 正文包含您的 ajax 查询结果。