Php 即使在提交基于PRG的表单时,Chrome也会跟踪2条历史记录条目

Php 即使在提交基于PRG的表单时,Chrome也会跟踪2条历史记录条目,php,forms,node.js,google-chrome,browser-history,Php,Forms,Node.js,Google Chrome,Browser History,当提交一个实现“Post+相同页面重定向+Get”方法的表单时,Chrome会跟踪两个历史记录条目,而不是一个 证明这种奇怪行为的步骤。 1-我浏览到表单页面裸体表单页面:demo.html。 裸体表格页: 我填表格。 填写表格: 我提交表格。 已提交-因此为空-表单(位于demo.html,从基于PRG的重定向重定向到相同的page.php): 4-我单击浏览器的“后退”按钮一次 Chrome跳回已填充的表单(步骤) 5-我需要再次点击浏览器的“后退”按钮,以在进入该表单页面之前到达我

当提交一个实现“Post+相同页面重定向+Get”方法的表单时,Chrome会跟踪两个历史记录条目,而不是一个

证明这种奇怪行为的步骤。 1-我浏览到表单页面裸体表单页面:demo.html。 裸体表格页:

我填表格。 填写表格:

我提交表格。 已提交-因此为空-表单(位于demo.html,从基于PRG的重定向重定向到相同的page.php):

4-我单击浏览器的“后退”按钮一次

Chrome跳回已填充的表单(步骤)

5-我需要再次点击浏览器的“后退”按钮,以在进入该表单页面之前到达我正在浏览的页面(比如我的浏览器的“谷歌”默认页面):

Chrome(版本25.0.1364.172)和Safari(版本6.0.2)都会出现这种情况

我所期待的 我希望有一个浏览器的“返回”点击,以达到表单之前的页面。 这实际上就是Firefox(19.0.2)、Opera(12.11)和IE(从版本6到最新版本10)的表现

我的源代码 demo.html

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <form action="redirect-to-same-page.php" method="post">
    Type something and submit: <input type="text" name="something" /> <!-- optional: autocomplete="off" -->
    <input type="submit" value="submit" />
    </form>

</body>
</html>

键入并提交:
redirect-to-same-page.php

<?php
header('Location: demo.html', true, 302); // not any of true/false 302/303 combinations are working
// not working either: header("Refresh: 0; demo.html");
exit;
?>

Chrome的web inspector揭示了什么。。。 1提交前:

2提交后:

我的问题 我读过类似的问题和可能的答案,但没有一个能解决我的问题

这种行为是Chrome/Safari的问题还是功能*?(*如果提交失败,将保留您填写的表格的完整备份)

node.js或php是否有正确或更具防御性的代码来避免这种行为

谢谢你的帮助