解决POST要求

时间:2014-02-10 23:52:43

标签: moqui

我需要能够为用户提供指向我的网站的链接,其中的参数将控制他们在目标网页上的体验,但是,当然,Moqui不允许将参数作为GET事务传递。有什么方法可以解决这个问题?它需要是可以通过电子邮件,短信和声音发送的东西。

1 个答案:

答案 0 :(得分:0)

错误消息将有助于确切知道您正在遇到什么,但这听起来像是减轻XSRF攻击的约束。

此情况的错误消息说明了问题和建议的解决方案:“出于安全原因,无法使用非安全请求或URL参数的操作运行屏幕转换(它们未加密,需要用于数据保护和来源)验证)。将来自的链接更改为具有隐藏输入字段的表单。“

您可以将URL参数传递给要在为演示文稿准备数据的代码中使用的屏幕,而不是用于处理输入的代码的转换。解决方案是使用带有链接或按钮的隐藏表单来提交表单(可以将其设置为链接或按钮,或者您想要的样式)。这比带有URL参数的普通超链接稍微多一些HTML,但不是更多,并且Moqui本身的各个地方都有例子。

如果您使用的是XML Screen / Form,则可以使用link元素将@ link-type属性设置为“hidden-form”或“hidden-form-link”(仅使用样式的超链接)小部件而不是按钮风格的一个)。如果@ link-type属性设置为“auto”(默认值),如果链接转到带有操作的转换,它将自动使用隐藏表单。

在纯HTML中,一种可能的方法如下所示:

<button type="submit" form="UserGroupMemberList_removeLink_0">Remove</button>

<form method="post" action=".../EditUserGroups/removeGroup" name="UserGroupMemberList_removeLink_0">
    <input type="hidden" name="partyId" value="EX_JOHN_DOE">
    <input type="hidden" name="userGroupId" value="ADMIN">
</form>

请注意,button元素指的是要提交的表单,因此可以放在HTML文件的任何位置,表单元素可以放在最后或任何不在的位置(以避免嵌套表单的问题, HTML中不允许使用。)