У меня есть веб-приложение, которое требует сохранения (вызов ajax) любых несохраненных данных, вводимых пользователем, когда пользователь уходит с сайта.
Я использую «Fetch» для выполнения вызова ajax (сохранения данных) в прослушивателе событий beforeunload. Но браузер, похоже, отменил вызов ajax (предварительный вызов OPTIONS был отменен, когда я посмотрел на сетевую панель Chrome).
В jquery есть способ отправить синхронный вызов ajax, но он устарел. Кроме того, можно обойтись во всплывающем окне, продиктованном браузером, чтобы пользователь мог подтвердить навигацию с помощью события beforeUnload, но это не является предпочтительным по бизнес-требованиям.
Итак, есть ли решение, позволяющее разрешить вызов Ajax?
Мой пример кода ниже. :
window.addEventListener('beforeunload', beforeUnloadHandler);
beforeUnloadHandler(event) {
fetch(url, {
method: 'PUT',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
Authorization: api.AUTHORIZATION_HEADER
},
body: JSON.stringify(data)
})
}