Почему мой XMLHttpRequest POST не всегда попадает на сервер? - PullRequest
0 голосов
/ 03 мая 2020

Я делаю запрос 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. Насколько я могу судить, потерянные события являются случайными.

Я читал о кэшировании в браузере, но не думаю, что это может быть проблемой, поскольку каждая полезная нагрузка имеет уникальную метку времени? С другой стороны, я не занимаюсь кодированием или настройкой заголовков, так что, может быть, в этом проблема?

1 Ответ

0 голосов
/ 04 мая 2020

Как упомянул и объяснил @mottek в комментариях, добавив var (или let или const) до того, как xhr решит проблему.

Я не понял xhr=new XMLHTTPRequest() создает глобальную переменную.

Я также получил post для последовательной работы, используя fetch:

fetch('/record_event', {
    method: 'post',
    headers: {
        'Content-Type':'text/plain'
    }
    body: timeStamp.toString()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...