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

Nic*_*ack 5 post http

想象一下,用户刚刚将数据发布到您的Web应用程序,并且您希望重新显示当前页面,并显示有关其成功或失败的消息.这变得复杂了.

如果数据有效且用户期望使用html,则您希望发出重定向,以便刷新不会导致重新发布.您希望重定向到引用程序(如果存在)并显示消息.如果他们不期望html,你可以简单地返回200 OK.

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

我发现自己做这种愚蠢的舞蹈的次数太多了.所以问题是:

1)你如何抽象整个过程,以便任何形式的帖子可以利用它?

2)在您喜欢的Web框架中实现这一目标的最可维护或最不重复的方法是什么?

3)您是否有任何改变这整个过程会使其变得更简单?

想法1:永远不要在帖子上呈现,始终重定向.将请求中的错误数据填入会话中一段时间​​,然后清除它,就像成功消息一样.这样,有效和无效的帖子可以用同样的方式处理.

想法2:不要做任何正常的HTTP帖子.只使用ajax.现在您根本不必担心渲染或重定向.这只有在你已经拥有ajax-heavy的应用程序时才有用.

Nic*_*ack 0

在不需要 JavaScript 的情况下制作像样的 Web 应用程序是一项繁重的工作。在这些情况下我将使用 AJAX。