html表单目标_blank浏览器不允许

时间:2013-03-11 09:44:43

标签: jquery ajax popup

我需要向paypal发送一个帖子请求,但在发送表单之前我需要验证一些输入,并且必须在新的标签页或窗口中打开paypal页面(无关紧要)。我无法在同一个窗口中发送请求,因为在主页面中我有后台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();
   });
}

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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);
});