gpt4 book ai didi

jquery - 无法在unload事件之前建立ajax连接

转载 作者:行者123 更新时间:2023-12-01 08:34:57 25 4
gpt4 key购买 nike

我正在尝试创建一个网站,该网站必须在用户退出网页时执行特定的服务器端任务。

经过大量研究和实验,我管理的方法不起作用。首先,我尝试处理退出事件。我使用 jquery 上的“beforeunload”事件来处理它。当用户尝试关闭或刷新特定网页时,我需要执行一些 php 代码。

我需要将一个变量(名称)发送到 php 文件。没有任何回应。它只是执行具有名称的任务。这是我尝试过的代码:

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(window).on("beforeunload", function() {
$.ajax({
type: "POST",
url: "unload.php?name=SOME_VARIABLE",
success: function(data) {}
});
});
</script>

问题是它不起作用。元素检查器上没有出现错误。“卸载”php 文件按预期工作。事实上,当直接通过其地址访问时,它会正确执行所需的任务。

我以前没有接触过ajax,也不掌握jquery。如果有更好的方法来实现这一点,请随时告诉我。

提前谢谢您。

最佳答案

您必须在 onbeforeunload 发送的 AJAX 请求中使用 async: false,否则选项卡会在处理响应之前被销毁。试试这个:

$(window).on("beforeunload", function() {
$.ajax({
url: "unload.php?name=SOME_VARIABLE",
type: "POST",
async: false,
success: function(data) {
// your code here...
}
});
});

请注意,这是唯一应该使用同步 AJAX 请求的情况。在所有其他情况下,它们应该异步发送。

关于jquery - 无法在unload事件之前建立ajax连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57509725/

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