页面上有3种表格更新数据:第一种是用户个人资料,第二种是密码重置,第三种是更改电子邮件。我将表单发送到控制器并重定向到同一页面。项目组负责人要求删除这些重定向,并说人们在提交表单后不刷新页面,重定向只会加载服务器... 我可能错了,但重定向总是应该在发送POST请求后完成。关于通过AJAX制作所有表格的建议被拒绝了。如果我没有弄错的话,我如何能够胜任地证明需要重定向?
答案 0 :(得分:2)
需要在提交表单后重定向,我现在应该这样做:
在上述情况下会出现问题,当提交表单并将普通视图返回给用户而不重定向页面时,在视图用户尝试刷新页面上他将获得以下警告信息。
您要查找的页面使用了您输入的信息。 返回该页面可能会导致您重复执行任何操作。 你想继续吗?
这意味着浏览器将再次发送在先前请求中处理过的数据,因此在服务器端处理的数据可能存在一些歧义。
这可能是在提交和处理表单后重定向页面的原因。
答案 1 :(得分:2)
您要寻找的是 Post-Redirect-Get 模式 您可以在此处阅读原始文章:http://www.theserverside.com/news/1365146/Redirect-After-Post
它暴露了所有的动机;简而言之,模式阻止双重提交(因为页面很慢,因此用户松散耐心)并允许浏览器安全地刷新(最后)页面,而不会冒重新提交数据的风险(或者至少具有警告你重新提交数据。)
答案 2 :(得分:1)
重定向仅用于清除所有发布数据。如果您选择不重定向,则用户在使用后退或前进按钮时会遇到一些不便。他将被要求再次发送帖子数据。