Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用navigator.sendBeacon注销用户时出现错误404_Javascript_Node.js_Beacon - Fatal编程技术网

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 });