尝试在表单提交时发送AJAX POST请求。已经有一段代码在所有浏览器中工作,除了IE。
可以工作的代码(除了IE)
$('form').one("submit", function(e) {
$.ajax(
{
url : url,
type: "POST",
data : data,
async: false,
complete: function() {
return true;
}
});
});
我已经尝试了几乎所有我知道的方法,例如onunload和onbeforeunload以及通常的onsubmit(原生JavaScript和jQuery方法)。但是IE不会等待AJAX调用完成,而是加载表单操作页面。 onbeforeunload可以使它等待,但会弹出确认对话框(我不想显示)。 此外,async:false在IE上不起作用。由于请求是跨域的,我不能使用HTTPRequest。同样,XDomainRequest是异步的,所以也没有用。 其他方式,如event.preventDefault()将不会在回调之后提交表单。 注意:页面上的表单在通过本地提交函数成功验证后被提交。我不能修改那段代码,因为它属于我们的客户,而我们正在异步加载我们的代码。 已经检查过以下链接: 使用onbeforeunload 带有超时的onbeforeunload