gpt4 book ai didi

javascript - 在 onbeforeunload 事件中将请求发送回服务器

转载 作者:行者123 更新时间:2023-11-30 09:00:54 25 4
gpt4 key购买 nike

当用户在我的应用程序中编辑记录时,我跟踪他们已将其“锁定”以防止其他用户编辑它,直到第一个用户关闭窗口(或保存)。

我正在尝试将请求发送回服务器以解锁记录,但它在 Firefox 中不起作用。 onbeforeunload 事件在脚本中调用,但它不会将请求发送回服务器。有什么想法吗?

<body>
<script>
window.onbeforeunload = function (e) {
doUnlock();
}

function doUnlock() {
if (navigator.appName == 'Microsoft Internet Explorer') {
// works in IE (with an IFRAME)
utilFrame.location.href = "/unlock.do?recordId=" + recordId;
} else if (navigator.appName == 'Netscape') {
// None of this works....
//window.location.href = "/unlock.do?recordId=" + recordId;
var req = newXMLHttpRequest();
req.open("GET", "/unlock.do?recordId=" + recordId, true);
req.send();
} else {
// Works for chrome
window.open("/unlock.do?recordId=" + recordId);
}
}

</script>

最佳答案

newXMLHttpRequest之间添加一个空格。

在页面卸载时,所有挂起的 (AJAX) 请求都被*取消。如果您必须在卸载时向服务器发送 AJAX 请求,请使用同步请求(不推荐!!!):

    var req = new XMLHttpRequest();
req.open("GET", "/unlock.do?recordId=" + recordId, false); // false
req.send();

我不推荐同步请求,因为在请求完成之前用户界面会阻塞。这对用户来说不是很友好。

关于javascript - 在 onbeforeunload 事件中将请求发送回服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350900/

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