Javascript 使用navigator.sendBeacon注销用户时出现错误404
您好,在我的应用程序中,如果用户关闭选项卡/窗口,我想让他注销。为此,我以以下方式使用Javascript 使用navigator.sendBeacon注销用户时出现错误404,javascript,node.js,beacon,Javascript,Node.js,Beacon,您好,在我的应用程序中,如果用户关闭选项卡/窗口,我想让他注销。为此,我以以下方式使用navigator.sendBeacon: client.js: window.addEventListener('unload', logData, false); function logData() { var b = localStorage.localStor; if (b != null && b != "{}") { console.log("clo
navigator.sendBeacon
:
client.js
:
window.addEventListener('unload', logData, false);
function logData() {
var b = localStorage.localStor;
if (b != null && b != "{}") {
console.log("closed");
console.log(JSON.parse(b).email); //prints user email
navigator.sendBeacon("/log", { email: JSON.parse(b).email });
localStorage.clear();
}
}
server.js
:(node.js)
在应用程序中,我使用settimeout
每30秒显示一次当前已连接用户的数量usersList
,但在关闭窗口时,本地存储确实是清晰的,但用户仍处于连接状态,因为已连接用户的数量没有改变。很明显,sendBeacon没有转到服务器,或者它转到但没有应用条件if(path==“/log”)
。此外,在关闭选项卡后,我在termenal中得到以下错误(我使用可视化代码):
“POST/log”错误(404):“未找到”
我搜索了有关如何使用sendbeacon的信息,并在中使用了它,但我认为由于我得到的错误,请求不会发送到服务器
你知道怎么解决这个问题吗
提前谢谢 每件事都是对的,但sendBeacon应该是这样的:
navigator.sendBeacon("http://localhost:8080/log", { email: JSON.parse(b).email });
您需要确保是否在nodejs服务器上收到请求。如果您确实收到了其中的
请求路径
。如果连你都不确定,怎么会有一个遥远的人来指引你。@Shaharyar不,我没有收到这个请求
navigator.sendBeacon("http://localhost:8080/log", { email: JSON.parse(b).email });