Я ищу решение повторяющейся проблемы с результатами поиска по форме в моем приложении.
В основном, когда пользователь выполняет поиск с использованием формы HTML и я отображаю результаты из базы данных на следующей странице, это прекрасно работает.
Однако, когда пользователь нажимает на отдельную запись в наборе результатов, а затем нажимает «Назад» в браузере, браузер спрашивает (Firefox):
"Для отображения этой страницы Firefox должен
отправить информацию, которая будет повторять любой
действие (например, поиск или заказ
подтверждение), которое было выполнено
ранее. "
Например, форма для поиска в коллекции DVD, пользователь ищет по годам, нажимает на отдельный фильм. Когда пользователь щелкает обратно на страницу результатов поиска, я не хочу, чтобы ему приходилось повторно отправлять / отправлять данные этой формы.
Так у кого-нибудь есть идеи, как обойти это?
Чтобы дать вам больше информации, я использую метод POST для отправки формы и использую следующие заголовки, чтобы браузер не кэшировал страницу.
Header('Pragma: no-cache');
Header("Cache-control: private, no-cache, no-store");
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");.
Поскольку большая часть сайта защищена паролем, я не хочу, чтобы сторона, защищенная паролем, кэшировалась и могла быть восстановлена после входа в систему.
По сути, каков наилучший способ избежать такого поведения браузера и в чем причина? Является ли no-cache виновником? Должен ли я указать время истечения пары минут в будущем от загрузки страницы на странице результатов поиска?
Как лучше всего подойти к этому, поскольку я не вижу этой проблемы на других сайтах. Я неправильно говорю о части без кэширования?