我有一个用户可以搜索视频的搜索栏。 在搜索之后,用户继续点击并观看视频(来自搜索结果)..当用户点击浏览器的后退按钮时,它显示以下内容
要显示此页面,Firefox必须 发送重复任何信息 动作(例如搜索或订单 确认)已执行 早。
而不只是显示结果.. 我只想在用户点击时显示搜索结果..是否与缓存有关? thankx ..
答案 0 :(得分:2)
最好将搜索表单的方法更改为get
,或使用Post/Redirect/Get模式。
显示该消息,因为需要重新发送POST数据以重新呈现页面。
答案 1 :(得分:2)
如果您不想这样,可以使用GET而不是POST作为表单方法。
即,你应该使用这样的东西:
<form action"yourpage.php" method="get">
...
</form>
而不是:
<form action"yourpage.php" method="post">
...
</form>
这样,表单中使用的参数将在URL中发送,而不是通过POST发送,用户将能够:
我应该在理论上补充一点:
通过搜索表单搜索某些内容时,您的用户不会创建或修改数据:他们要求提供数据 - 因此,您的表单应使用GET方法。
答案 2 :(得分:1)
要解决此问题,请将现有top.location.reload()
或parent.location.reload();
替换为top.location.href=top.location.href;
。
答案 3 :(得分:0)
不,这不是缓存问题。问题是您使用POST
提交搜索表单。有几种解决方案。
更好的方法是更改要使用GET
的表单。您可以通过设置其method
属性
<form method="get" action="search.php">
另一方面,如果您担心搜索查询会花费太长时间,您可以使用某种形式的ID保存搜索,然后重定向到获取此搜索ID的页面并显示结果。重定向可以用
完成header('Location: show_search.php?id=' . $searchId);