Как при переходе по ссылке отправить информацию серверу без get запроса?

Есть меню на сайте. Необходимо чтобы сервер при переходе со страницы на страницу с помощью этого меню понимал, что пользователь переходит на данную страницу именно из этого меню, а не с какой-либо другой страницы. То есть для данной задачи не подходит использование get запросов. Необходимо, чтобы в результате ссылка была чистой. Как это можно реализовать?
  • Вопрос задан
  • 5440 просмотров
Пригласить эксперта
Ответы на вопрос 5
не обязательно использовать AJAX
рендерим менюшку с вашими чистыми ссылочками
с помощью JS-а на каждую ссылочку с меню вешаем обработчик клика, который делает следующее: он запрещает переход по ссылке, но при этом отправляет пользователя по модифицированной ссылке. что-то типа этого:
// псевдокод
window.location.href = $(e.currentTarget).href + '?from=menu&id=foo';

логику модифицирования ссылки подгоните под свою ситуацию
а на стороне сервера уже разбирайте полученную ссылку на контроллере и имейте счастье

Update 1: далее ТС упомянул, что ссылка в адресной строке после перехода не должна содержать дополнительных параметров. для этого нужно очистить url и редиректить уже на очищенный url. в этом случае будет все красиво
Ответ написан
@Atllantis
AJAX
А ещё данные можно отправлять POST методом.
Ответ написан
@djay
Необходимо, чтобы в результате ссылка была чистой. Как это можно реализовать?


Ну то есть как в Open Cart. Используй сессию для этого. Перед тем как отрендерить страницу - запиши её заголовок/ид в сессию. Дальше на любой другой страницу проверяй есть ли в сессии данные о предыдущей странице.
Ответ написан
qork
@qork
{ background: #F00B42 }
Пункт меню:
<form action="ссылка" method="post">
   <button name="menu" value="header-menu">Пункт меню</button>
</form>


codepen.io/anon/pen/akqbzd
Ответ написан
Комментировать
Hy_ok
@Hy_ok
отправь данные с помощью ajax
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы