Перезагрузка страницы после перенаправления

#javascript

#javascript

Вопрос:

В моем приложении у меня есть ссылка для выхода из системы.

html

 <a onclick="myFunction()">Logout</a>
  

js

 function myFunction() {
    document.location.href = 'https://url/oauth/logout?redirect=https://url';
}
  

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю выход из системы, я сразу перенаправляю на url . Кажется, что я не вышел из системы, но после обновления вручную я выхожу из системы.

Я также пробовал window.reload(); внутри myFunction() , но на самом деле он вообще не вызывается.

Есть ли способ перезагрузить страницу после myFunction() вызова.

Любая помощь приветствуется. Спасибо

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

1. Если вы уже перенаправляете кого-то, вы не хотите перезагружать страницу, на которую вы только что перенаправили. Что делает ваша функция myFunction? Ваша логика выхода из системы должна правильно обновлять пользовательский интерфейс, чтобы после перенаправления пользовательский интерфейс правильно отображал то, что должен видеть пользователь, вышедший из системы.

2. @GifCo Чтобы вам было ясно, я на самом деле не хочу перезагружать страницу после выхода из системы и перенаправления. У меня есть API https://url/oauth/logout , который выводит пользователя из системы, и после этого я хочу перенаправить на страницу входа в систему. Для этого я использовал redirect=https://url after logout. Но для меня я должен вручную перезагрузить страницу, чтобы убедиться, что она успешно вышла из системы, вот почему я хотел перезагрузить страницу. Есть ли какие-либо другие варианты, которыми вы можете поделиться, которые я могу реализовать. Спасибо

Ответ №1:

Вы можете получить конечную точку выхода из системы, а затем перезагрузить страницу, если она прошла успешно, вот так:

 const myFunction = async (event) => {
  event.preventDefault()
  const response = await fetch('https://url/oauth/logout');
  if (response.ok) {
    location.replace('new-url');
    // or location.reload()
  }
}
  

Ответ №2:

Вместо перенаправления на стороне клиента попробуйте перенаправление на стороне сервера на любом языке, который вы используете.

 <?php
    Logout Logic here
    header("Location: /login_url");
?>