【问题标题】:Internet Explorer missing POST data in form.submit() requestInternet Explorer 在 form.submit() 请求中缺少 POST 数据
【发布时间】:2016-09-30 11:29:02
【问题描述】:

在 IE11 中,使用普通的 form.submit() JS 函数,没有 POST 变量被提交到服务器。开发控制台显示 POST 参数为空。

我正在使用 jQuery 在点击 .form-file-download 时触发一个事件:

$(".form-file-download").on("click", 
                        ".download-file",
                        function (){
                            $(this).parent().submit();
                        });

这是正在提交的表单:

<form class="form-file-download" action="/reqHandling/file.handler.php" method="post">
    <input name="file" type="hidden" value="3">
    <input name="action" type="hidden" value="download">
    <i class="fa fa-cloud-download download-file"></i>
</form>

表单数据不被 JS 操作。我已经尝试取消隐藏输入。

提交函数被执行并向 file.handler.php 发送一个 POST 请求(如预期的那样),但没有发送任何参数。

Firefox、Chrome 和 Edge 确实会发送表单数据。知道有什么问题吗?如果需要更多详细信息,请告诉我!

【问题讨论】:

  • 您是否查看过 IE 开发者工具中的网络检查器以查看是否实际发送了任何内容?
  • 是的,这就是我所说的开发控制台显示 POST 参数为空的意思。该请求是对正确 URL 的 POST 请求,标头很好,但没有 POST 数据...
  • 对不起,我错过了!也许尝试将 action 重命名为 theform.action 可能会在同名的元素和属性之间产生歧义。

标签: javascript jquery forms internet-explorer post


【解决方案1】:

据我所知,参数是在 IE11 中提交的:

https://jsfiddle.net/McNetic/ug429jfd/1/

IE 开发工具只是不显示为 POST 请求的“参数”,而是显示为请求文本。

(ignore code for jsfiddle link)

【讨论】:

  • 我不久前解决了这个问题......我认为这是由于 JS 操作所有表单元素 onLoad。然后 IE 无法发送(仍然有效的)表单的当前值。
猜你喜欢
  • 2012-05-10
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2019-04-04
  • 2011-08-27
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多