2015-10-05 90 views
0

我有一个网页有一个iframe的iframe POST数据:如何捕捉父网页

<iframe id="foo" src="foo.html"></iframe> 

此iframe主办了一个隐藏的表单(foo.html),并提交到外部网页上另一个域( http://example.com/foobar):

<form name="foobar" action="http://example.com/foobar" method="POST"> 
    <input type="hidden" name="returnURL" value="bar.html"> 
</form> 
<script type="text/javascript"> 
    document.foobar.submit(); 
</script> 

外部网页由一系列表单组成。在其最终形式中,验证将POST数据提交到returnURL中设置的URL。

从用户的角度来看,目前发生的情况是浏览器被重定向到returnURL。这不是我想要的。

我需要的是对待原始网页中的POST数据,而不刷新它。

我能想到的几个选项:

  • 触发iframe的POST出口和捕获POST数据;
  • returnURL设置为原始网页,并在不重新加载页面的情况下处理POST数据;
  • returnURL设置为另一个网页,并在收到POST数据时更新当前页面。

不幸的是,我似乎无法实现任何这些。什么是最好的选择,我应该从哪里开始?

允许使用jQuery。

+0

您的意思是说,您希望表单提交的结果填充整个页面,而不仅仅是坐在iframe中? –

+0

@RoryMcCrossan不是真的,我想关闭iframe并在原始网页上处理数据,但我不希望表单提交的结果取代所有内容。我只想处理表单数据(就像已经通过ajax在同一页上使用本地表单完成的那样)。我希望它更清晰...... –

+0

你有两个域的访问?你能在两台服务器上进行更改吗? – Mitul

回答

0

只要您处于不同的域中,javascript中的安全限制就会阻止您在两个框架之间进行通信。

+0

正确,但正如问题中所述,POST数据是从外部iframe发送到本地URL的。 –