2013-03-11 47 views
3

我需要向paypal發送一個post請求,但在發送表單之前,我需要驗證一些輸入,並且必須在新選項卡或窗口中打開paypal頁面(無關緊要) 。我無法在同一窗口中發送請求,因爲在主頁面中我有背景ajax回調。所以ideea是我可以在新窗口或標籤中發送請求嗎?html表單目標_blank瀏覽器不允許

在所有主要的瀏覽器中,這是不允許的,瀏覽器會阻止請求。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank" id="paypal_form"> 
<input type='hidden' name='some_value' id='some_value' value='151' /> 
</form> 

<div id='button_submit' onClick="verify_paypal_form();">SUBMIT !</div> 

而現在的AJAX部分:

function verify_paypal_form(){ 
    $.post('verify.php', { someValue : 'FOO' }, 
    function(data){ 
     if(data == 'OKAY') $('#paypal_form').submit(); 
    }); 
} 
+0

您可以使用iframe來代替。使用id將表單的目標設置爲該iframe。 – 2013-03-11 09:46:34

回答

1

設置形式的目標IFRAME和嘗試。您可以將iframe作爲新選項卡的內容顯示。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="myFrame" id="paypal_form"> 
<input type='hidden' name='some_value' id='some_value' value='151' /> 
</form> 

<div id='button_submit' onClick="verify_paypal_form();">SUBMIT !</div> 
<iframe id="myFrame" ...... set other attributes as required....></iframe> 
+0

我不明白。 iframe的含義?我需要在新的窗口或選項卡中將發送請求發送到貝寶。 – 2013-03-11 10:15:44

1

你可以打開與JS的新窗口太然後使用this answer解決方案:

$("#paypal_form").submit(function() { 
    var newWin = window.open("", "", ""); // SPecify your window attributes here, but no URL 
    // do an XMLHTPPRequest and document.write the result to the new window: 
    var winDoc = doAJAXAndReturnOtherPagesSource(); 
    newWin.document.write(winDoc); 
}); 
相關問題