javascript提交表单并捕获响应

时间:2014-07-23 12:19:35

标签: javascript html forms

我将从中提交iframe:

<form id="myform" action="http://example.com/" target="myiframe">
     //some fields
</form>

<iframe name="myiframe" src=""></iframe>

然后在某些时候我使用javascript提交此表单:

<script type="text/javascript">
    document.getElementById("myform").submit();   
</script>

如何在.submit()之后捕获响应?

我无法使用jQuery和Ajax调用。

1 个答案:

答案 0 :(得分:1)

  1. 您可能遇到跨域问题,因为您无法使用JavaScript访问http://example.com/内容,除非您的JavaScript也托管在http://example.com/上。

  2. 如果表单操作指向同一个域,则可以执行this之类的操作:

    <强> HTML

    <form id="myform" action="http://fiddle.jshell.net/" target="myiframe">
         //some fields
    </form>
    
    <iframe id="myiframe" name="myiframe" src=""></iframe>
    

    javascript

    var iFrame = document.getElementById("myiframe");
    var form = document.getElementById("myform");
    
    iFrame.onload = function () {
        /** do smth with your iframe data */
        console.log(iFrame.contentDocument.body.innerHTML);
    };
    
    form.submit();
    
  3. 请注意 jsfiddle代码中的域名 - 它指向同一个域,执行JS,以防止跨域访问问题。