【发布时间】:2010-09-10 14:29:04
【问题描述】:
这是一张要发布到 Worldpay 支付网关的支付表单。它具有 WorldPay 文档中的所有参数,如果直接发布,它可以正常工作。
但是,现在我正在尝试
- AJAX 首先将表单发布到我的网站(使用 jquery.form,该部分工作正常),然后执行一些数据库操作
- 然后使用 javascript 更改操作属性并将其发布到 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 支付网关需要用户在发布后在那里填写一些表格,因此使用ajaxSubmit() 再次提交 AJAX 将不起作用。我需要一个正常的表单提交。
谢谢,
桑迪潘
【问题讨论】:
标签: jquery bind dynamic unbind form-post