Запрос отправляется на сервер при закрытии страницы, потому что скрипт, который отправляет данные на сервер, выполняется при выполнении события закрытия страницы или перезагрузки.
Для исправления кода и предотвращения отправки пустого массива данных на сервер при закрытии страницы, можно использовать метод **beforeunload** или **unload** для отслеживания события закрытия страницы или перезагрузки. При этом, перед отправкой запроса на сервер, можно проверить наличие данных для отправки. Например:
```javascript
window.addEventListener('beforeunload', function(event) {
if (myData.length > 0) {
// Отправить данные на сервер
sendDataToServer(myData);
}
});
```
Таким образом, код будет проверять наличие данных перед отправкой на сервер и не будет отправлять пустой массив при закрытии страницы или перезагрузке.