我需要向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();
});
}
答案 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);
});