使用“后退”按钮在开机自检事件后中断页面


Using 'back' button breaks page after POST event

这里有一个搜索函数运行 http://www.ssaib.co.uk/security-provider-search/它运行得很好,你会得到一个结果集。但是,当您获得结果时,如果您选择结果并单击"更多",然后尝试"返回"分页符而不是重新提交帖子。似乎在任何地方都找不到提及这一点。

任何帮助非常感谢

你用什么作为浏览器?

我刚刚测试了它,它适用于最新的Chrome,Firefox,Opera,Safari和Internet Explorer。返回后,您将再次进入搜索结果。

编辑:

您有两种选择。

第一:

  • 使用 GET 变量而不是 POST 提交搜索。这要好得多,因为搜索引擎也可以抓取搜索结果。

第二:

如果您仍然想使用 POST,那么智能搜索系统会像这样摆脱 POST 重定向:

    目标网址为
  • "搜索.php"(或您使用的任何网址(的表单
  • 提交到搜索.php后,您将执行数据库搜索并为该搜索分配唯一的"ID">
  • 搜索.php然后将用户重定向到在URL中具有唯一ID的"/searchresults/"页面(或其等效项((如"/searchresults/23442/"(或GET变量("/searchresults/?id=23442"(。在该页面中,向用户显示通过搜索.php脚本找到的搜索结果。
  • 这意味着如果用户单击"返回",那么他们将返回其搜索结果页面。这样做的好处是,您不必在每次用户单击"返回"时再次搜索数据库。浏览器永远不会返回到通过标头重定向的URL,因此即使用户返回两次,它也不会破坏任何内容。
  • 一段时间后,您应该使数据库中的"旧"搜索无效,或者在用户再次请求相同的 ID 时重新生成它们。

您应该使用 GET 进行检索。 但是,如果您确实使用POST,则应始终(在我看来(使用Post/Redirect/Get。 这通常需要您使用SESSION来保持重定向之间的状态。