页面关闭时执行的 Ajax 请求无效,该怎么办?

页面关闭时执行的 ajax 请求无效,该怎么办?

页面关闭时执行的 ajax 请求无效

在使用 javascript、ssm 和 java 技术开发项目时,开发人员遇到这样的问题:在页面关闭时执行的 javascript 方法可以正常进入,但是方法中的 ajax 请求却无法执行。

问题代码如下:

$(window).on('unload', function() {
    $.ajax({
        type: 'POST',
        url: '${ctx}/wms/ebPurchaseItem/choiceItem',
        data: {id: "", caozuo:"clear"},
        async: false,
        success: function(data){
            console.log("调用完成ajax");
            alert (data);

        }
    });
    console.log("结束");
    alert ("结束");
});

对于这个问题,有两种解决方法:

  • 使用 navigator.sendbeacon() 函数。该函数专门用于在浏览器关闭后发送请求,可以保证请求能发送到后端。但是,注意兼容性问题。
  • 直接设置 cookie(session id)有效期,或将 session id 放在浏览器内存中。当浏览器关闭时,session id 失效或被清除,从而实现清除 session 的目的。

以上就是页面关闭时执行的 Ajax 请求无效,该怎么办?的详细内容,更多请关注其它相关文章!