页面关闭时执行的 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 请求无效,该怎么办?的详细内容,更多请关注其它相关文章!