Я использую sessionStorage успешно в проекте с одной оговоркой: я не могу устранить хранилище с помощью оператора clear()
, как описано.sessionStorage.clear() не работает
Я делаю это при выходе из административного режима моего сайта, который включает в себя нажав на пункт Log Out в списке, как это:
<li><a href="admin_logout.php">Log Out</a></li>
admin_logout.php
файл затем уничтожает переменные сессии, и т. д., а затем перенаправляется на главную страницу сайта. Его предыдущей формой, которая работает, является:
<?php
session_start();
session_destroy();
@header('Location:./');
exit;
?>
Это все работает нормально. То, что я не могу интегрировать в рутину, - это очистка sessionStorage. Текст моего admin_logout.php
файла, я пробовал:
<?php
session_start();
?>
<script>
sessionStorage.clear();
</script>
<?php
session_destroy();
@header('Location:./');
exit;
?>
... а также:
<?php
session_start();
echo '<script>';
echo 'sessionStorage.clear();';
echo '</script>';
session_destroy();
@header('Location:./');
exit;
?>
Возможно, указывая на основную причину в том, что, когда я поставил:
?>
<script>
alert("HELLO");
</script>
<?php
... в этом скрипте предупреждение никогда не выполняется, но все остальное. Как я могу вызвать операцию на основе sessionStorage.clear()
, чтобы очистить элементы хранения сеанса в рамках описанной выше процедуры?
Почему бы не предупредить() не запускать, если оно находится в том же месте в файле? Он должен работать независимо. Вот почему я подозрительный. – Tom
предупреждение также является клиентским кодом. Javascript вообще не имеет возможности запускаться, потому что вы перенаправляете его до того, как он будет отображаться в браузере. – allicarn
Вы были правы ... Мне пришлось отключить обратный вызов, чтобы он работал. Я отправлю ответ. – Tom