javascript (window).unload in 不适用于某些 chrome 版本

问题描述

以下 window.unload 方法适用于不同浏览器和某些 chrome 浏览器,但不适用于特定的 chrome 浏览器。

$(window).unload(function () {  
    var tabSessionId = getUrlVars()["info"];    
    var ajurl = "/hello/help";
    $.ajax({
        type: "GET",data: { 'info': info},url: ajurl,async: false,error: function (xhr,status,error) {
            // alert('error');
        },success: function () {
            // alert('Data Saved:');
        }
    });
});

我读到这是一种不稳定的方法,所以尝试了 $(window).bind('beforeunload',function() 和 $(window).('beforeunload',function() ,但它仍然不起作用。请帮助我,因为我已经坚持了很长时间。

编辑 1 - 添加console.log后,观察到调用了unload方法但是到达了ajax调用的error方法。将 async 更新为 true 后,不会打印任何日志。我在评论警告的地方添加了日志。

编辑2: 使用fetch方法代替ajax调用-

  fetch("/hello/help?info=“ + encodeURIComponent(info))
  .then(res => res.json())
  .then(res => {
    console.log(“success”);
    console.log(res);
  })
  .catch(error => {
    console.log(“ in error method”);
    console.error(error);
  });

获取错误 - 获取失败

在 ajax 中收到错误 - VM307 GuidedHelp.js:300 错误 NetworkError:无法在“XMLHttpRequest”上执行“发送”:加载失败 页面关闭中的同步 XHR。有关详情,请参阅 https://www.chromestatus.com/feature/4664843055398912

谁能告诉我 fetch 方法代码是否正确或有什么错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)