HTTP Referrer и IE7 и IE8 - PullRequest
       15

HTTP Referrer и IE7 и IE8

7 голосов
/ 17 марта 2010

Привет, я пробовал следующее, чтобы найти реферера в MSIE / IE7 и IE8, но каждый раз он возвращался пустым;

PHP:

<?
echo $_SERVER['HTTP_REFERER'];
?>

JAVASCRIPT:

document.write('Thanks for visiting from ' + document.referrer);

Кто-нибудь знает, в чем может быть проблема, о которой я говорю, используя document.location со страницы в другом домене, и прекрасно работает со всеми другими браузерами, за исключением MSIE.

Любая помощь будет отличной!

Ответы [ 3 ]

5 голосов
/ 17 марта 2010

Заголовок HTTP Referer не требуется для протокола HTTP:

  • Отправляется только как информация
  • Браузер может или не может отправить его (что объясняет, почему вы получаете его с некоторыми браузерами, а не с другими)
  • Некоторые брандмауэры / программы безопасности могут удалить его, я полагаю, в некоторых ситуациях (я видел это несколько лет назад, если я правильно помню)
  • Может быть легко подделан пользователем

Это означает, что вы не можете полагаться на Referer для своего приложения: вы можете использовать его для обеспечения некоторой дополнительной функциональности, но ваше приложение должно работать, даже если его там нет или оно некорректно. 1025 *

1 голос
/ 07 февраля 2012

HTTP_REFERRER не работает в браузере IE, он отлично работает для всех браузеров, таких как Mozilla, Safari, Opera и т. Д. Метод реферера не распознает в IE, он возвращает ноль, когда мы применяем его для IE. На самом деле использование HTTP_REFERRER само по себе не является правильным критерием, потому что мы не можем ожидать, что он будет работать или нет, поскольку это не стандартный HTTP HEADER.

0 голосов
/ 08 февраля 2012

Вот взлом, который вы можете попробовать:

    var referLink = document.createElement('<a href="' + theUrl + '" target="' + theWindow + '"></a>');
    document.body.appendChild(referLink);
    referLink.click();
...