POST请求应该呈现HTML还是重定向?
我讨厌你在页面上刷新并让浏览器告诉你,你将再次发布数据。
答案 0 :(得分:5)
是的,redirect after POST最好避免这种情况。
答案 1 :(得分:5)
是。它应该发送一个实体或重定向!
(对不起,有时会出现旧的编程笑话)。
这实际上取决于你是否能够有意义地为GET提供一些东西,这是有道理的站在它自己。
示例:我买东西,我得到一个页面上写着“谢谢你,yadda yadda订单号,收据,yadda”。
那应该是303看到其他重定向,以便我获取包含该信息的页面。我可以为它添加书签,刷新只需刷新GET。快乐的日子。
有时候,只有渲染立即响应才会有意义,如果它们刷新,那么重复实际操作,书签就没有意义了。这不应该是重定向。
在大多数情况下,无论如何都要尽可能少。如果你必须将它们返回到表单是非常有用的,因为有些东西失败了 - 没有人想要一个失败表单的书签,他们想要修复需要修复的东西并继续使用它。
注意,许多服务器端系统(ASP等)在从POST重定向时使用302,这严格意味着它会再次POST,但几乎没有浏览器。相反,要更清楚: