我刚注意到Chrome的一些奇怪行为。在我的网站上有一个页面,其中包含一个表单,该表单对站点的安全部分进行POST。但是,如果我使用ctrl +左键单击(在提交按钮上)在Chrome中提交表单,则会打开一个新窗口(如预期的那样),但请求是GET请求而不是GET请求,并且不会发送任何表单数据。我试图通过一个简单的形式制作测试页来排除所有其他事情:
<form method="post" action='https://secure.mysite.com/formtest2.php' target='_top'>
<input type='text' name='element' value='blabla' />
<input type='submit' value='submit' />
</form>
和接收页面:
<?php
print "POST:";
print_r($_POST);
print "<br/>GET:";
print_r($_GET);
?>
当我点击提交按钮(在Chrome中)时,一切都按预期工作,我得到:
POST:Array([my-element] =&gt; blabla)
GET:Array()
但是,当我使用ctrl + click时,我会在新标签中看到:
POST:Array()
GET:Array()
所以我的问题是,这是正常行为还是Chrome中的错误(我的版本是21.0.1180.83米)?反正是为了防止这种情况发生,所以我不必向用户显示某种错误页面,将其重定向回来,并要求不要在新标签中打开表单的提交(UGLY!)