3

ペイパルに投稿リクエストを送信する必要がありますが、フォームを送信する前にいくつかの入力を確認する必要があり、ペイパル ページを新しいタブまたはウィンドウで開く必要があります (問題ありません)。メインページにバックグラウンドの ajax コールバックがあるため、同じウィンドウでリクエストを送信できません。アイデアは、新しいウィンドウまたはタブでリクエストを送信できますか?

すべての主要なブラウザでは、これは許可されていません。ブラウザはリクエストをブロックし続けます。

<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();
   });
}
4

2 に答える 2

1

JS で新しいウィンドウを開き、この回答のソリューションを使用することもできます。

$("#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);
});
于 2013-03-11T09:55:50.410 に答える
1

formのターゲットを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>
于 2013-03-11T09:48:21.470 に答える