jQuery跨域表单提交错误

时间:2013-08-13 13:13:49

标签: jquery post cross-domain payment-gateway

我设置了全局ajax错误处理程序

$.ajaxSetup({
    error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('There has been an error processing your request.');
        }
    }
});

我正在尝试将隐藏的表单提交给外部支付网关

$.ajax({
    type: 'POST',
    url: '@Url.Action("Pay", new { invoiceId = Model.Id })',
    success: function (html) {
        $('#paymentFormContainer').html(html);
        $('#paymentFormContainer').find('form').submit();
    }
});

表单似乎提交OK,我在Fiddler中看到发布的数据,但全局ajax错误回调触发。

检查错误并未提供任何线索。

XMLHttpRequest: Object
error: undefined
errorThrown: ""
textStatus: "error"

我想知道这是否是跨域发布问题?

我正在使用Chrome,尚未尝试其他浏览器。

1 个答案:

答案 0 :(得分:1)

是的,您不能使用XMLHttpRequest对象向不是原始页面主机的其他域发出请求。

作为一种hacky解决方法,您可以将AJAX调用作为服务器上的脚本,将请求代理到您希望的位置。另一个选择是操纵iframe和客户端JS回调以获得所需的结果。