Http 混乱的路线-获取或发布

Http 混乱的路线-获取或发布,http,url-routing,Http,Url Routing,我有这个流程,但不知道如何处理它。我认为“前进”按钮应该使用GET,因为它安全且幂等,但textarea包含大量文本,因此我认为无法放入URI。我换成了邮局 ConfirmCreatePost上的OK按钮。 流程显示,当单击confirmCreateAlbum上的“取消”时,它将返回nameAlbum,其中的字段已填充以进行编辑。我用action=“confirmCreateAlbum”将OK按钮放在表单中。问题是如何回到nameAlbum 注意:如果未提供所需字段,nameAlbum将显示错误

我有这个流程,但不知道如何处理它。我认为“前进”按钮应该使用GET,因为它安全且幂等,但textarea包含大量文本,因此我认为无法放入URI。我换成了邮局

ConfirmCreatePost上的OK按钮。 流程显示,当单击confirmCreateAlbum上的“取消”时,它将返回nameAlbum,其中的字段已填充以进行编辑。我用action=“confirmCreateAlbum”将OK按钮放在表单中。问题是如何回到nameAlbum

注意:如果未提供所需字段,nameAlbum将显示错误


我不认为这里的问题是post或get

您可以创建两个表单:一个使用ok按钮,post/get进入下一步;一个带有“取消”按钮,发布/访问nameAlbum。
或者,您可以创建一个表单,其中两个按钮具有相同的名称和两个不同的值,然后发布/访问某个页面。在该页面上,检查值并重定向到下一步或nameAlbum

发布到confirmCreateAlbum后,您将文本区域中的数据存储在哪里?
我假设您将其存储在会话中,以便在nameAlbum中可以将数据(如果有)填充到字段中


如果您可以使用javascript,您可以使用一些javascript处理下一个“取消”按钮,并避免一些往返。

虽然浏览器中GET请求没有特定的长度限制,但会对URI长度施加限制。对于某些服务器实现,还需要考虑一些因素

您说过textarea“包含大量文本”,因此建议在这种情况下使用POST,因为它不会受到URI限制

关于您最初的问题,“问题是如何回到nameAlbum?”

在confirmCreateAlbum表单中,实际上可以使用两个单独的表单。一个用于“确定”的表单,该操作调用您指定的脚本进行确认;一个用于“取消”的表单,该表单的操作调用您的nameAlbum表单

另一个选择是巧妙地隐藏输入字段并传递数据,但这可能会变得混乱


就个人而言,如果由我决定,我会使用jQuery/Javascript来确认表单提交。这是一个简单的客户端解决方案,在按下“取消”键时不需要离开原始表单。但那只是我…

我遵循规则:当您希望URL是唯一的(如搜索框)时,使用
GET
。将
POST
用于所有其他会话我不会在会话中存储任何内容,因为这不是良好的编程实践。如果我使用会话,这个问题很简单。谢谢你的建议。我为“OK”和“Cancel”制作了两个表单,因此隐藏的输入加倍。除息的