Как удалить предупреждение «Покинуть сайт» в javascript?

#javascript #typescript #events

#javascript #typescript #Мероприятия

Вопрос:

У меня есть файл ts, в котором я написал функцию для выхода из системы, которая :

 private addListenersForLogout() {
        if (this._logoutDiv) {
            this._logoutDiv.addEventListener("click", (e) => {
                DataManager.getDataManager().geHttpDataHandler().postRequest("", HTMLFactory.POST_USER_LOGOUT, () => {
                    window.location.href = Constants.LOGIN;
                }, () => {
                    Console.log("Failed");
                })
            })
        }
    }
  

Здесь this._logoutDiv находится элемент div, к которому я добавляю прослушиватель кликов. Когда пользователь нажимает на него, вызывается один серверный API, и на основе ответа я перенаправляю на страницу входа. Но как только я нажимаю на него и после того, как я получаю ответ от серверной части, он показывает окно предупреждения «Покинуть сайт». Как я могу это удалить?? или есть какая-либо альтернатива window.location.href перенаправлению??

Вот скриншот предупреждающего сообщения. Предупреждение о выходе с сайта

Спасибо

Комментарии:

1. Что именно представляет собой «окно предупреждения покинуть сайт»?

2. Я добавил скриншот предупреждения @deceze

Ответ №1:

Это диалоговое окно не из кода, который вы опубликовали здесь: что-то подключается к событию onbeforeunload где-то еще на сайте.

Вам либо нужно пропустить его добавление, либо вы можете удалить его непосредственно перед переходом. Для этого вам нужно вызвать window.removeEventListener с той же функцией (и типом события), с помощью которой был вызван addEventListener.

В качестве обходного пути вы могли бы попробовать добавить это прямо перед перенаправлением:

 window.onbeforeunload = null;