Почему beforeunload не отправляет запросы в браузере Safari?
Есть запрос, который при отправке сохраняет данные в базу. Нужно, чтобы когда пользователь обновляет страницу, данные тоже сохранялись. Использую такое событие, как befoureunload. В Chrome и Firefoox всё окей, а вот с Safari беда. Он не обрывает запросы или будто не ждет их завершения и сыпет ошибку "Network Error", из-за чего они не доходят до сервера. Запрос методом POST шлю через axios, пробовал через fetch (понятное дело, одно и то же). Пробовал сделать worker, но опять в Chrome и Firefox работает, а в Safari нет.
Посмотрите на Beacon API. Он как раз предназначен для аналитики.
А обычные запросы браузер имеет полное право обрывать потому что полагает что в нём уже нет никакого смысла раз вы покидаете страницу.
Конечно хорошо, но к сожалению это не то, что мне нужно. visibilitychange срабатывает когда пользователь сворачивает окно или переключается на другую вкладку, мне нужно на обновление страницы.