【问题标题】:HTTP Referrer and IE7 and IE8HTTP Referrer 和 IE7 和 IE8
【发布时间】:2011-01-28 11:08:27
【问题描述】:

您好,我已尝试以下方法在 MSIE / IE7 和 IE8 中查找引荐来源网址,但每次都返回空白;

PHP:

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

JAVASCRIPT:

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

有谁知道我使用另一个域上的页面中的 document.location 引用的问题可能是什么,并且可以在除 MSIE 之外的所有其他浏览器上正常工作。

任何帮助都会很棒!

【问题讨论】:

    标签: internet-explorer-8 internet-explorer-7 referer


    【解决方案1】:

    HTTP Referer header 不是 HTTP 协议所必需的:

    • 仅作为信息发送
    • 浏览器可以或不能发送它(这可以解释为什么你在某些浏览器上得到它,而在其他一些浏览器中没有得到它)​​
    • 我想,在某些情况下,某些防火墙/安全软件可能会删除它(如果我没记错的话,我在几年前就看到过)
    • 用户可以轻松伪造

    这意味着您的应用程序不能依赖Referer:您可以使用它来提供一些附加功能,但即使它不存在或不正确,您的应用程序也必须工作。

    【讨论】:

    • 有谁知道为什么IE8或IE7会拒绝发送它被推荐的referrer的具体情况?考虑一个没有防火墙的默认浏览器。
    • @cocacola09 该网站声称这是一个错误webbugtrack.blogspot.de/2008/11/…
    【解决方案2】:

    HTTP_REFERRER 在 IE 浏览器中不起作用,它适用于所有浏览器,如 mozilla、safari、opera 等... Referrer 方法在 IE 中无法识别,当我们将其应用于 IE 时,它将返回 null。实际上,使用 HTTP_REFERRER 本身并不是一个正确的标准,因为我们不能指望它会起作用,因为它不是标准的 HTTP HEADER。

    【讨论】:

    • HTTP_REFERER,不是HTTP_REFERRER
    【解决方案3】:

    您可以尝试以下技巧:

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

    【讨论】:

      猜你喜欢
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多