我不确定这是否是一个现有的错误,但在调试了我正在处理的 Web 应用程序后,我发现 Safari 5 中出现了一些奇怪的行为。这是场景:
页面 A ---- HTTP POST ----> 页面 B ---- HTTP POST ----> 页面 C
页面 A:
<body onload="document.forms[0].submit()">
<form method="post" action="pageB.php">
<input type="hidden" name="display" value="ABC" />
</form>
</body>
B页:
<body onload="document.forms[0].submit()">
<form method="post" action="pageC.php">
<input type="hidden" name="display" value="123" />
<input type="hidden" name="extra" value="XXX" />
</form>
</body>
C页:
<body>
<?php
print_r($_REQUEST);
?>
</body>
在我目前测试过的所有浏览器中,只有 Safari 5(Mac 版)会显示 name="display" 的值 "ABC",我仍然可以看到字段 "extra" 的值 "XXX"。所有其他浏览器(包括 Safari 3、4)将显示正确的值“123”。
由于某些原因,我仍然需要使用页面 A 和页面 B 提交表单,在这种情况下,Safari 5 的解决方法是什么?(为了让它在页面 B 提交正确的值,应该是 123,而不是像将值从页面 A 转发到页面 C 那样排序)
非常感谢!
- Edit1:仅在 Mac OS(Snow Leopard、Lion)Safari 5 上发生
- Edit2:使示例更清晰