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 查询结果。
在我的 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 查询结果。