这是一张要发布到 Worldpay 支付网关的支付表格。它具有 WorldPay 文档中的所有参数,如果直接发布,它可以正常工作。
但是,现在我正在尝试
- AJAX 首先将表单发布到我的站点(使用 jquery.form,并且该部分工作正常)然后执行一些数据库操作
- 然后使用 javascript 更改 action 属性并将其发布到 Worldpay。但是 worldpay 帖子不起作用,并且
$("form#wpftuf").submit();
在以下代码行之后的任何警报也没有警报。
付款表格
<form name="wpftuf" id="wpftuf" method="post" action="http://url/of/ajax/file/add_credit">
<input type="hidden" name="operation" value="add_credit" id="operation" /> <?php // for ajax validation ?>
<input type="hidden" name="worldpayUrl" value="<?php echo WPurl?>" id="worldpayUrl" />
...
..
...other necessary fields
</form>
在这里,我将 worldpay URL 作为参数传递
AJAX 绑定
$(document).ready(function()
{
var options = {
dataType: 'json',
beforeSubmit: function()
{
//alert("submitting");
},
success: function(data)
{
if(data)
{
if(data.success)
{
var worldpayUrl = $("input[id=worldpayUrl]").val();
$("form#wpftuf").attr("action",worldpayUrl);
alert("this works");
$("form#wpftuf").submit();
//This alert does not work
alert("this alert does not work "+$("form#wpftuf").attr("action"));
}
}
}
,
error:function()
{
alert("validation failed");
}
};
$("form#wpftuf").ajaxForm(options);
});
我猜错误正在发生,因为我试图更改操作并在 ajax 表单的成功事件中提交,而表单仍然是binded
. 因此,我尝试盲目地将$("form#wpftuf").unbind(options);
,放在$("form#wpftuf").unbind();
$("form#wpftuf").unbind(ajaxForm);
该$("form#wpftuf").attr("action",worldpayUrl);
行之后(一个接一个),但在所有情况下我都会收到此错误uncaught exception: Permission denied to call method XMLHttpRequest.open
ajax 表单处理成功后,如何将表单动态提交给worldpay。表格必须unbinded
放在第一位吗?请帮忙。这可能有一个简单的解决方案,但我无法得到它。我搜索了很多。
请注意
worldpay支付网关需要用户在发布后在那里填写一些表格,所以再次使用AJAX提交ajaxSubmit()
将不起作用。我需要一个正常的表单提交。
谢谢,
桑迪潘