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