让我们想象一下,我们有简单的数据,并希望对其进行分页。这不难做到,简单的带有页码的_GET var其他带偏移的学说将允许我们以简单的方式完成它,但是在搜索页面中它应该如何?让我解释一下。
例如,我们有/ search url的简单路由。我们的搜索形式。当使用输入字符串时我们在同一页面上使用POST方法并获得结果。很简单但是如果我们在这里添加分页,那么存储“输入字符串”就成了问题。
如果我们在搜索查询的会话中存储它将是解决方案但是......它不是。为什么?用户输入搜索字符串 - 在离开页面后(或关闭浏览器,或离开另一页面)获取带分页的结果(此处搜索字符串已在会话中)。当他从会话中返回数据时会向他显示“旧查询的结果”......
所以问题是,这种情况的最佳做法是什么?我想要简单的搜索查询+它的分页,但如果用户离开页面 - 清除结果。
答案 0 :(得分:1)
使用POST代替GET进行搜索查询有点不寻常,并不是很安全。由于搜索查询操作是只读的,因此您应该使用GET来访问/获取数据。 POST用于更新或创建资源。
你将如何在分页中返回/转发(使用浏览器的按钮)?你总是会得到一个警报框。并且您无法共享/标记搜索查询网址。
BTW回答你的问题,会话和隐藏的输入字段将是你要走的路。您还可以使用get和post
的组合<强> When should I use GET or POST method? What's the difference between them? 强>