为什么我的XMLHttpRequest POST不总是发送到服务器?

问题描述 投票:0回答:1

我正在创建XMLHttpRequest,在浏览器中发生某些用户事件时,将字符串发布到nodejs服务器,但并非每个事件都将其发送到服务器。

基本上是我为每个浏览器事件调用的功能:

function xhr_event(timeStamp){
    xhr=new XMLHttpRequest()
    xhr.open("POST",'/record_event');
    console.log(timeStamp.toString())
    xhr.send(timeStamp.toString())
}

其中timeStamp=event.timeStamp

在客户端,每个事件都记录到控制台。在服务器端,并非所有事件都显示为POST。据我所知,丢失的事件是随机的。

我了解了浏览器缓存,但我认为这不是问题所在,因为每个有效负载都有唯一的时间戳?再说一次,我没有对标题进行任何编码或设置,所以也许是问题所在吗?

node.js http post events xmlhttprequest
1个回答
0
投票

正如@mottek在评论中提到并解释的,在var解决问题之前添加let(或constxhr)。

我没有意识到xhr=new XMLHTTPRequest()创建一个全局变量。

我也通过使用post使fetch能够始终如一地工作:

fetch('/record_event', {
    method: 'post',
    headers: {
        'Content-Type':'text/plain'
    }
    body: 'timeStamp.toString()'
}
© www.soinside.com 2019 - 2024. All rights reserved.