2013-07-17 2 views
0

Я установил страницы ошибок в IIS как httpRedirect.htm, пытаясь преобразовать любой HTTP-запрос в https, когда обнаружена ошибка 403.4.document.referrer get blank

Так что, если пользователь вводит URL-адрес http-браузера, он запускает страницу httpRedirect.htm и получает этот URL-адрес, заменяет http на https и затем перенаправляет на этот новый URL-адрес. Я хочу, чтобы это произошло в javascript.

Однако, когда я использую document.referrer в httpRedirect.htm, я нашел, что он всегда возвращает пустое.

Есть ли какое-либо особое соображение для этой ситуации? Может ли браузер, используя эту страницу с ошибкой, передавать информацию из предыдущего запроса?

+0

Вы не можете полагаться на document.referrer. И deocument.referrer ВСЕГДА пуст, когда приходит из закладки или вводит адрес. Использовать информацию в URL-адресе – mplungjan

ответ

0

Вам нужно будет посмотреть объект местоположения. Переадресация выполняется на стороне сервера.

Сценарии:

  1. перейти непосредственно к http://example.com/index.html и httpRedirect.htm визуализируется. Так как это первая страница, которую вы посещаете , реферер пуст.
  2. Вы находитесь на странице http://test.com/index.html и нажимает на ссылку http://example.com/index.html. Теперь вы видите httpRedirect.html, , но реферрером является страница до, которая является http://test.com/index.html.

Поскольку реферер зависит от вашего браузера, вы не можете ничего иметь в объекте referrer, даже если он «должен» быть чем-то там. Некоторые брандмауэры и антивирусные приложения могут маскироваться.

Если вы находитесь в http://example.com/index.html и видите httpRedirect.htm, то location.href все еще http://example.com/index.html.

Вы можете увидеть некоторые примеры кода, используя расположение здесь: http://kloudgate.wordpress.com/2013/05/30/how-to-redirect-http-to-https-using-iis7-0/