gpt4 book ai didi

javascript:Internet Explorer 在表单提交/页面卸载之前不发送 ajax 调用

转载 作者:行者123 更新时间:2023-11-29 14:51:35 24 4
gpt4 key购买 nike

尝试在表单提交时发送 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( native Javascript 和 jQuery 方法)。但是 IE 不会等待 AJAX 调用完成并加载表单操作页面。

onbeforeunload 会让它等待,但会带一个对话确认框(我不愿意显示)。

此外,async:false 不适用于 IE。我不能使用 HTTPRequest,因为请求是跨域的。同样,XDomainRequest 是异步的,因此即使这样也没用。

其他方式,如event.preventDefault()回调后不会提交表单。

注意:页面上的表单是在使用原生提交功能验证成功后提交的。我不能弄乱那段代码,因为它属于我们的客户,而且我们正在异步加载我们的代码。

已经检查过的链接: using onbefore unload onbeforeunload with timeout

最佳答案

更改提交并放置一个按钮。并更改事件:

$('#submitbuttonid').on("click", function(e) {  
e.preventDefault()
$.ajax(
{
url : url,
type: "POST",
data : data
complete: function() {
$('form').submit();
}
});
});

关于javascript:Internet Explorer 在表单提交/页面卸载之前不发送 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com