我有一个简单的表单,由于某种原因,某个客户无法按预期工作。
<form id="fpForm" method="get" action="login">
<input type="hidden" name="someHiddenValue" value="2"/>
Label<br/>
<input type="text" name="someVisibleValue" value="" size="30"/>
<br/><br/>
<a href="#" onclick="document.forms[1].submit();return false;"><span>This button submits</span></a> <a href="login"><span>This one Cancels</span></a><br/><br/>
</form>
我没有写代码,我只是要支持它。但无论如何。。。
在其他客户和我的测试环境中,当我填写文本输入并单击按钮提交时,url会被导航到,并且它具有预期的参数:
<some_url_I_can't_show_here>/login?someHiddenValue=2&someVisibleValue=value_here
但在这个客户,当我点击时,我得到了这个:
<some_url_I_can't_show_here>/login?
参数不会添加到URL中,因此不会发生预期的行为。
关于为什么会发生这种情况,有什么想法吗?我看到了一堆非常相似的问题,但不是,这似乎很好地解释了为什么以这种方式设置表单可能会发生这种情况。我能想到的唯一不同点是,工作客户都由我们公司托管在AWS服务器上,有问题的客户是自己托管的。在这两种情况下都使用Apache。但我不知道服务器端会发生什么,这可能会导致表单出现这种行为
就我个人而言,我会使用method="POST"
而不是method="get"
,因为您发布的是数据而不是检索数据。您需要做的是将<a href="#" onclick="document.forms[1].submit();return false;">
更改为<input type='submit'>
,以便表单工作。