2013-03-13 164 views
0

我有一種情況,我想同時將表單數據發佈到2個不同的位置。我無法控制位置,它們是跨域的。 我在這裏發現了一篇以前的帖子,使用了一個iframe,現在我找不到,我已經註冊了。它每次提交給第一個,但第二個只提交25%的時間。我需要它在所有主要瀏覽器中更可靠地工作。嘗試使用Ajax,但無法讓它在IE中跨域嘗試在這個論壇中提出的許多解決方案。 謝謝。 埃德將表單提交到2個不同的網站第二次通過javascript

<form name="myForm" method="post" action="http://www.firstwebsite.com" onsubmit="return submit2nd()" > 
<input type="email" name="email" value='' /> 
<input type="submit" name="submit" /> 
</form> 
<script> 

function submit2nd(){ 
var x=document.forms["myForm"]["email"].value; 
var iframe = document.createElement("iframe"); 
var uniqueString = "asderwegthyuq123"; 
document.body.appendChild(iframe); 
iframe.style.display = "none"; 
iframe.contentWindow.name = uniqueString; 
var form = document.createElement("form"); 
form.target = uniqueString; 
form.action = "http://www.secondwebsite.com"; 
form.method = "POST"; 
var input = document.createElement("input"); 
input.type = "hidden"; 
input.name = "email"; 
input.value = x; 
form.appendChild(input); 
document.body.appendChild(form); 
form.submit(); 
return true; 
} 
</script>  

回答

1

複製在提交形式和不同目的地提交表單兩個內部框架,或使用AJAX。我強烈建議使用框架,如JQuery,這樣您就不必擔心兼容性問題。

你的代碼發生了什麼,它會嘗試在提交第一頁期間提交到第二頁。如果提交到第一頁在提交到第二頁之前完成,則第二次提交將不會成功。如果您離開頁面,當前頁面中的所有腳本都將停止(因爲您將訪問www.firstwebsite.com)。

一個解決方案,你可以在這裏做的是:

  1. 變化submit2nd(),使其提交的第一和第二的網站。
  2. submit2nd()應該返回false,因此它不會嘗試提交到action屬性中的頁面。
  3. 提交後(單擊提交按鈕),複製表單。
  4. 第一種形式 - >將action更改爲www.firstwebsite.com - >提交。
  5. 第二種形式 - >將action更改爲www.secondwebsite.com - >提交。

注意:如果您希望爲此使用AJAX,請確保您沒有跨域問題。在您的示例中,您嘗試將表單提交給兩個不同的域:firstwebsite.com和secondwebsite.com。如果它們位於不同的域中,則需要特殊設置。您可以對此read more或檢查本政策的explanation

+0

感謝您的迴應rationalboss, 不確定如何實現您的解決方案,但我仍然需要去www.firstwebsite.com提交後,所以不會創建2個不可靠的提交表單,而不僅僅是一? Ajax將無法正常工作,因爲它需要在IE中工作,跨域,並且我無法修改目標。我花了4天時間嘗試了許多Ajax解決方案,其中沒有一個能夠在IE中使用。他們在Chrome和FF中工作正常。 – 2013-03-13 06:56:02

+0

[JQuery適用於Internet Explorer。](http://jquery.com/browser-support/)。提交後,您可以通過使用'' – rationalboss 2013-03-13 07:53:06

相關問題