【问题标题】:Form.submit() is not adding URL parameters and redirects to wrong URLForm.submit() 未添加 URL 参数并重定向到错误的 URL
【发布时间】:2021-06-15 06:08:24
【问题描述】:

我有一个简单的表格,由于某种原因,某个客户没有按预期工作。

<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>&nbsp;<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。但我不知道服务器端会发生什么可能导致表单出现这种行为。

【问题讨论】:

  • 回复:“我只需要支持它。” 你有什么访问权限?您可以访问 HTML、CSS 和 JS 吗?

标签: javascript forms apache dom


【解决方案1】:

就个人而言,我会使用method="POST" 而不是method="get",因为您是在发布数据而不是检索它。您需要做的是将 &lt;a href="#" onclick="document.forms[1].submit();return false;"&gt; 更改为 &lt;input type='submit'&gt; 以使表单正常工作。

【讨论】:

  • 所以我尝试了这个,它在技术上确实有效。我认为它应该是这样写的,所以不确定他们为什么选择 GET。但我无法克服的是为什么这适用于某些情况而不是所有情况,尤其是在相同的形式下。
猜你喜欢
  • 2012-10-15
  • 2017-07-08
  • 2022-01-08
  • 2014-12-30
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
相关资源
最近更新 更多