【问题标题】:Handling POST - BadRequest - GET cycle处理 POST - BadRequest - GET 循环
【发布时间】:2013-05-27 05:46:49
【问题描述】:

我有一个向控制器发送 POST 请求的表单(post url = myForm/save),现在如果验证失败,我会从控制器向客户端发送 badRequest()。

页面正确呈现,显示验证错误和填写的表单。 (但是 URL 仍然是 myForm/save 在地址栏中,正如预期的那样)。

现在,如果我在此页面上等待并且会话到期,然后重新提交表单 Secure Social 会将我带到登录页面。成功登录后,Secure social 将记住最后一个 URL(myForm/save)并尝试 GET 请求来呈现页面。问题来了,因为最后一个 url 是一个 POST 请求,但是为了呈现页面 Secure Social 向控制器发送一个 GET 请求。

这会导致“未找到操作”。我该如何解决这个问题?

【问题讨论】:

    标签: playframework securesocial


    【解决方案1】:

    您是否尝试在路由中复制路径以添加 GET 请求?

    POST  /myForm/save       com.controllers.Application.index()
    GET   /myForm/save       com.controllers.Application.index()
    

    【讨论】:

    • 使用这个可以避免 Action not found 错误,但是因为它是一个 Get 请求,所有的表单数据都会丢失。此外,它似乎更像是一种备用解决方案。无论如何谢谢z。
    • 我认为在会话过期后尝试其他发布请求并不是最好的选择。您应该在登录后将用户重定向到新表单。如果您在会话过期之前使用 ajax 调用保存数据,也许您可​​以预先填写表单。
    猜你喜欢
    • 1970-01-01
    • 2015-10-31
    • 2013-06-18
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    相关资源
    最近更新 更多