Альтернатива заголовку «Referer»

Я использовал код "request.getHeader (" Referer "); Спасибо.

8
задан Ebbu Abraham 23 August 2010 в 09:08
поделиться

2 ответа

Запись заголовка «Referer» необязательна. Вы не можете полагаться на его присутствие. Кросс-браузерный способ получить предыдущую ссылку отсутствует, потому что это зависит от пользовательских настроек и конфигурации прокси-сервера (то есть того, что, по мнению системных администраторов, они должны разрешить вам видеть).

Вы должны найти способ жить без этой информации.

10
ответ дан 5 December 2019 в 10:00
поделиться

Непонятно, для чего он вам нужен, но я подозреваю, что он вам нужен. иметь возможность вернуться на некоторую «начальную страницу» того же веб-сайта, когда какое-либо действие будет завершено. Тогда лучший вариант - передать URI запроса в качестве параметра запроса. Например. ссылка для входа:

<a href="/login?from=${pageContext.request.requestURI}">login</a>

Сохраните в форме входа в систему для следующего запроса как скрытое входное значение формы:

<input type="hidden" name="from" value="${param.from}">

В методе действия входа просто перенаправьте на этот URL после завершения действия.

response.sendRedirect(request.getParameter("from"));

Если это не то, что вы ищете, то вам действительно стоит более детально проработать свой вопрос, чтобы спросить, как выполнить функциональное требование, а не спрашивать, как достичь (неправильного) решения.

Полагаться на рефереру любой поток бизнес-логики с самого начала было плохой идеей. Ваш первый урок веб-разработчика должен был заключаться в следующем: конечный пользователь имеет полный контроль над тем, что он отправляет с HTTP-запросом. Вы не должны полагаться на то, что вся эта информация присутствует, не говоря уже о 100% правильности.

7
ответ дан 5 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: