代码之家  ›  专栏  ›  技术社区  ›  Nick Retallack monkut

如何处理从HTTP POST发送的所有方式?

  •  5
  • Nick Retallack monkut  · 技术社区  · 17 年前

    如果数据是有效的,并且用户需要html,则需要发出重定向,这样刷新就不会导致他们重新发布。您希望重定向到引用者(如果存在),并显示一条消息。如果他们不期待html,你可以简单地返回200 OK。

    如果数据无效,并且用户需要html,您需要重新呈现他们来自的页面,并显示一个可见的错误,以便他们可以重新发布。为此,您必须运行前面的操作,并使其知道错误消息。为了确定前一个操作是什么,也许你把它作为一个隐藏参数包含在表单中。如果他们不需要html,你可以返回一个适用的4xx客户端错误。

    2) 在你最喜欢的web框架中,实现这一点的最可维护或重复性最小的方法是什么?

    3) 你对整个过程有什么改变可以让它更简单吗?

    想法1:永远不要在帖子上渲染,总是重定向。在请求之间的一瞬间将错误数据填充到会话中,然后清除它,就像成功消息一样。这样,有效和无效的帖子可以以相同的方式处理。

    想法2:不要发布任何正常的HTTP帖子。只使用ajax。现在,您根本不必担心渲染或重定向。只有当您已经拥有一个ajax繁重的应用程序时,这才有用。

    3 回复  |  直到 17 年前
        1
  •  3
  •   Paolo Bergantino    17 年前

    Post/Redirect/Get 图案。这是最好的做法,你应该遵循它。基本上,正如你所说,你 知道

        2
  •  0
  •   aleemb    17 年前

    理想情况下,同一页面将检查请求是否是回发,并处理其中的所有逻辑。因此,通常情况下,您的代码隐藏或带有表单的应用程序页面将有一个部分来处理回发。

        3
  •  0
  •   Nick Retallack monkut    13 年前

    推荐文章