Я изо всех сил пытаюсь написать код, который надежно выполнит запрос POST при закрытии окна вкладок. Navigator.sendBeacon
, кажется, именно то, что мне нужно (я только требую, чтобы это работало для Google Chrome).Вызвать запрос POST для регистрации из окна разгрузки
$(global).bind('unload', function() {
let body = {
UserEmail: appState.user.email,
Job: {
Id: appState.jobId
},
Timestamp: '/Date(' + new Date().getTime() + ')/',
EventOrigin: 'PdfReviewClient',
Event: 'JobClosed'
};
let headers = {
Authorization: `JWT ${authenticationState.token}`,
'Content-Type': 'application/json; charset=utf8'
};
let blob = new Blob([JSON.stringify(body)], headers);
navigator.sendBeacon(configuration.rootApiUrl + 'jobevents', blob);
});
Мой маяк включает пользовательские заголовки, поэтому я создаю Blob.
Однако этот запрос, похоже, не происходит. Это особенно сложно отладить, поскольку окно закрывается. Итак, вопрос в том, почему мой маяк не отправляется?
Я предполагаю, что вы подтвердили, что запрос происходит, когда * не * сделано в браузере закрыто? – Jorg
@Jorg Да, у меня есть. Хорошая мысль, спасибо за проверку, но это не проблема в этом случае. –
И выгрузка сама запускает тоже? Возможно, вы сможете протестировать его с помощью «предупреждения», чтобы увидеть, закрывает ли окно окно – Jorg