Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么发送post请求后需要重定向?_Php_Forms_Symfony - Fatal编程技术网

Php 为什么发送post请求后需要重定向?

Php 为什么发送post请求后需要重定向?,php,forms,symfony,Php,Forms,Symfony,页面上有三种用于更新数据的表单:第一种用于用户配置文件,第二种用于密码重置,第三种用于更改电子邮件。我将表单发送到控制器并重定向到同一页面。项目团队负责人要求删除这些重定向,并说人们在提交表单后不会刷新页面,重定向只会加载服务器。。。 我可能错了,但重定向总是应该在发送POST请求后进行。我关于通过AJAX制作所有表单的建议被拒绝了。如果我没有弄错的话,我如何才能胜任地证明需要重定向?提交表单后需要重定向,我假设您现在应该这样做: 你提交表格 在数据库中保存详细信息 从控制器返回视图 在上述情况

页面上有三种用于更新数据的表单:第一种用于用户配置文件,第二种用于密码重置,第三种用于更改电子邮件。我将表单发送到控制器并重定向到同一页面。项目团队负责人要求删除这些重定向,并说人们在提交表单后不会刷新页面,重定向只会加载服务器。。。
我可能错了,但重定向总是应该在发送POST请求后进行。我关于通过AJAX制作所有表单的建议被拒绝了。如果我没有弄错的话,我如何才能胜任地证明需要重定向?

提交表单后需要重定向,我假设您现在应该这样做:

  • 你提交表格
  • 在数据库中保存详细信息
  • 从控制器返回视图
  • 在上述情况下可能会出现问题,当提交表单时,您将普通视图返回给用户,而不重定向页面,并且在视图中,用户尝试刷新页面,他将收到以下警告消息

    您正在查找输入的已用信息的页面。 返回到该页面可能会导致重复您采取的任何操作。 你想继续吗

    这意味着浏览器将再次发送在上一个请求中处理过的数据,因此在服务器端处理的数据中可能存在一些歧义


    这可能是在提交和处理表单后重定向页面的原因。

    重定向仅用于清除所有post数据。如果选择不重定向,用户在使用后退或前进按钮时可能会遇到一些不便。他将被要求再次发送post数据

    您要寻找的是Post-Redirect-Get模式。
    您可以在此处阅读原文:


    它暴露了所有的动机;简言之,该模式可防止重复提交(因为页面速度慢,因此用户失去耐心),并允许浏览器安全地刷新(最后一个)页面,而不会冒重新提交数据的风险(或者至少在重新提交数据时出现弹出警告)。

    谢谢!你帮了我!