我正在尝试在Grails应用程序中处理重复的表单提交。因此,我在表单中设置了useToken="true"
,这就是我尝试在 Controller 中使用withForm
方法的方式:
def myControllerAction {
withForm {
*my action's logic*
}
}
但是,我最终在浏览器中看到了:
Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
。因此,我想我使用的方法不正确,并且在网络上找不到如何正确使用该方法的任何示例。
在这方面的任何帮助将非常有帮助。
预先谢谢你。
最佳答案
您的示例中实际上并没有太多内容:简短的答案是,如果 token 无效,您必须做一些事情来引起重定向。
Grails Manual显示了如何使用它。
逻辑上所做的就是将一个具有唯一值的隐藏字段放入其中。该值存储在 session 中,因此您的 session 必须正常工作(如果在群集环境中托管,则需要 session 亲和性或共享 session )。提交表单后,它将查找该唯一值,并确定它是否已提交。
您似乎在任何地方都没有处理invalidToken
,因此您可能正在处理 token 未正确存储或正确传递且逻辑导致重定向的情况。如果要使用get
而不是post
进行重定向,则可能会导致重定向循环。 (即使第一次正确处理 token ,这也可能导致重定向循环。)
我会看一下您的代码,找出重定向的来源。它不是直接由 token 引起的。
关于forms - Grails-重复的表单提交处理-withForm {}如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441372/