首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在用户退出选项卡或浏览器时运行POST请求?

如何在用户退出选项卡或浏览器时运行POST请求?
EN

Stack Overflow用户
提问于 2020-11-16 00:20:12
回答 1查看 58关注 0票数 0

到目前为止,我有这个

代码语言:javascript
运行
复制
window.addEventListener("beforeunload", function(e){
      $.post('insert.php', {'postmessage':'CALL bor.update_records_exit(\'' + authUser + '\');'}, function(data) {
            e.returnValue = null;
            return null;
      })
      .fail(function(response) {
            alert('Error: ' + response.responseText);
      });
});

这是有效的,但并不可靠。有时发送请求,有时不发送,我不明白为什么。

我知道这与请求的同步性有关。我尝试使用.ajax()代替,并将async属性设置为false,但随后我意识到async:false已被取消。

我所需要做的就是在用户关闭浏览器或标签时发送一个最终的插入查询...请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2020-11-16 00:23:45

不推荐使用async: false的说法是正确的,但是在beforeunload事件中发出AJAX请求时,您别无选择,只能使用它。事实上,这只是它唯一的合法用途。

这是因为在允许浏览器关闭之前,您需要等待请求完成。您现在看到的一些请求失败的行为正是出于这个原因;浏览器在请求管道中过早关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64846812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档