【问题标题】:Cross-domain form posting with iframe target in Chrome在 Chrome 中使用 iframe 目标进行跨域表单发布
【发布时间】:2011-10-08 23:49:03
【问题描述】:

我在那个帖子上有一个表格到一个隐藏的 iframe。表单的操作 URL 位于单独的域中。我在 Chrome 中看到表单发布但未发送表单数据的问题。

设置如下:

<form action="http://anotherdomain/save" method="post" target="myiframe" id="myform">
    <!-- standard form fields here -->
    <button type="submit">Submit</button>
</form>
<iframe src="about:blank" name="myiframe" style="display: none;"></iframe>

如果用户点击按钮,表单会按原样发布到 iframe 中,一切正常。但是,如果我引入 jQuery Validation,Chrome 就会停止工作。我的验证看起来像这样:

$("#myform").validate({
   // various options set here
   submitHandler: function(form) {
       form.submit();
       // stuff that should happen after the form submits
   }
});

在这种情况下,form.submit() 会导致表单提交而不发布任何数据,只发送标题。 content-length 始终为 0。这只发生在 Chrome、Firefox、IE、Opera 中都可以正常提交。

更奇怪的是,如果我在页面上有另一个按钮,我用下面的代码连接它,表单会正确提交。

$("myotherbutton").click(function() { $("#myform").submit(); }

我不知道为什么 Chrome 会这样,以及是否有解决方法。任何帮助将不胜感激。

【问题讨论】:

    标签: forms google-chrome jquery-validate cross-domain


    【解决方案1】:

    请忽略这个问题。这不是 Chrome 和事件处理程序的问题,而是与在调用事件之前删除 DOM 元素有关的问题。

    【讨论】:

      猜你喜欢
      • 2015-04-26
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2015-02-20
      • 2021-12-05
      • 2017-11-14
      相关资源
      最近更新 更多