2015-10-05 106 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的。 –