7

こんにちは、MSIE / IE7およびIE8でリファラーを見つけるために次のことを試みましたが、毎回空白が返されます。

PHP:

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

ジャバスクリプト:

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

別のドメインのページから document.location を使用して参照していて、MSIE を除く他のすべてのブラウザーで正常に動作する問題が何であるかを知っていますか。

どんな助けでも素晴らしいでしょう!

4

3 に答える 3

5

HTTPRefererヘッダーは、HTTP プロトコルでは必要ありません。

  • 情報としてのみ送信されます
  • ブラウザはそれを送信できるか、または送信できません(これにより、一部のブラウザでは取得でき、他の一部のブラウザでは取得できない理由が説明されます)
  • 一部のファイアウォール/セキュリティソフトウェアは、状況によってはそれを削除できると思います(記憶が正しければ、数年前に見たことがあります)
  • ユーザーが簡単に偽造できる

つまり、アプリケーションをに依存することはできませんReferer。これを使用して追加の機能を提供することはできますが、アプリケーションが存在しない場合や正しくない場合でも、アプリケーションは機能する必要があります。

于 2010-03-17T07:36:54.540 に答える
1

HTTP_REFERRER は IE ブラウザーでは機能しません。mozilla、safari、opera などのすべてのブラウザーで正常に機能します。リファラー メソッドは IE で認識されず、IE に適用すると null が返されます。実際に HTTP_REFERRER を使用すること自体は、標準の HTTP HEADER ではないため、機能するかどうかを期待できないため、正しい基準ではありません。

于 2012-02-07T14:29:19.647 に答える
-2

これはあなたが試すかもしれないハックです:

    var referLink = document.createElement('<a href="' + theUrl + '" target="' + theWindow + '"></a>');
    document.body.appendChild(referLink);
    referLink.click();
于 2012-02-07T21:33:21.100 に答える