我有一个全局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浏览器,还没有尝试过其他浏览器。
是的,不能使用XMLHttpRequest对象向不是原始页面主机的其他域发出请求。
作为一种巧妙的解决方法,您可以在服务器上让AJAX调用一个脚本,将请求代理到您想要的位置。另一种选择是操作iframe和客户端JS回调以获得所需的结果。