2013-05-10 119 views
-1

我有一個應用程序,我需要執行多個表單提交到外部網站。我希望表單提交以打開新標籤頁。 我所做的是使用JavaScript創建表單元素,然後我只做一個form.submit()。我知道只有一個將通過。多表單提交到跨域網站

我在找工作。一種方法是使用JSONP:

我有這樣的事情,到目前爲止

 
$.ajax({ 
    dataType: 'jsonp', 
    url: path, 
    type: "POST", 
    async: "false", 
    contentType: 'application/x-javascript', 
    data: $('this').serializeArray(), 
    success: function (html) { 
     if (data != "") {  
       var link = html; 
       window.open(link,'', ''); //open's link in newly opened tab! 
      } 
     }, 
     failure: function (html) { 
     alert(html); 
     } 
    }); 
     return false; 
    }); 

但是連我自己指定的typepost,我在Chrome開發者工具,我有一個實際獲得發送見。我猜這是因爲window.open。

可有人建議技術來實現這一/

謝謝

+1

*「但是,即使我確實指定了要發佈的類型,我在Chrome開發人員工具中看到我有一個實際發送的郵件,我猜這是因爲window.open。」*不,這是因爲[ JSONP](http://en.wikipedia.org/wiki/JSONP#JSONP)本質上是** GET操作。 – 2013-05-10 21:24:16

+0

有關其他解釋,請參閱http://stackoverflow.com/questions/4508198/how-to-use-type-post-in-jsonp-ajax-call – 2013-05-10 21:25:19

+0

誰將其標記爲重複項,並引導我進入「How to使用類型:「POST」在jsonp ajax調用「 - 請注意,我的問題不是如何使用POST和jsonp ajax調用。我的問題是執行多個表單提交到跨域網站...如果有一個問題有這個答案(沒有),那麼你可以標記爲完整。 – oneiros 2013-05-10 23:39:35

回答

1

我需要執行多個表單提交給外部網站。我希望表單提交以打開新標籤頁。我所做的是使用javascript創建表單元素,然後我只做一個form.submit()。

如果您設置表單元素的target attribute"_blank"在HTML,並設置表單元素實例每個外部URL中的action property在一個循環中(例如,設置URL,調用submit;集下一個URL,請致電submit),您應該可以多次提交表單。 (您可能必須在處理用戶生成的事件時執行此操作,即使這樣,我也不會確定瀏覽器不會確保  —,並且不應該使用  —塊將多個新選項卡發起)。

但我會強烈推回原來的要求,除非它是絕對清楚到你要去當他們點擊該按鈕或任何在做什麼最終用戶。

+0

Crowder先生,結果只有這4個表單提交中的一個被提交。在發佈之前,我嘗試了這種方法。 – oneiros 2013-05-10 21:35:29

+1

@imparator:天哪,如果你只是**在你的問題中提到**。 (四,呃?用什麼瀏覽器?) – 2013-05-10 21:36:37

+1

不能暗示*「我需要執行多個表單提交到外部網站」*? – 2013-05-10 22:01:54