3

下面的 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调用的错误方法。将 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 方法代码是否正确或有任何错误吗?

4

0 回答 0