获取帖子 - 重定向 - 刷新以调用重定向页面而不是原始请求

时间:2008-10-27 15:43:22

标签: javascript html oracle refresh

我们有一个PL / SQL数据库过程的POST,它(a)根据POST参数进行一些数据库操作,(b)将用户重定向到显示结果的页面。

问题是,当用户对浏览器“刷新”结果页面时,仍然有原始请求,因此它调用数据库过程并重新发送参数。

我们可以通过保存状态来执行这些操作,因此如果请求再次发送,则不会发生错误。但这让我感到疑惑。

有没有办法告诉浏览器将网址设置为重定向调用,而不是原始用户请求?这可能是重定向本身,也可能是目标页面上的Javascript。

2 个答案:

答案 0 :(得分:1)

您没有提到您用于提供页面的内容,但请确保执行EXTERNAL重定向。某些平台将在网站内部重定向。

例如,对于Apache HTTP Server,您需要在mod_rewrite中指定force-redirect标志:http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule

第4回应here对此也有不错的解释。

答案 1 :(得分:1)

在维基百科上很好地描述了规范解决方案。见Post/Redirect/Get。您希望处理POST的代码在完成工作时重定向到GET,因为刷新GET不会重新提交表单数据。

相关问题