2011-02-26 7 views
2

は、ページへのリンクを作成してブラウザに新しいリクエストでリファラーを設定しないように指示する手段ですか?HTML <a>そのリンクdoenst 'set referere?

私はtarget="_blank"を試しましたが、クロムは常にリファラーヘッダを入れました。

おかげ

+0

リフェラーヘッダーの意味を明確にすることはできますか? –

+0

@Daniel:Webリンクをたどったときにブラウザから要求されたURLに送信されるHTTP_REFERERヘッダーを意味します。興味深い質問。 –

+0

JavaScriptを使用できますか?サーバーサイドスクリプトを使用できますか? –

答えて

0

あなたはアンカー要素に属性rel="noreferrerを追加する可能性があります。

<a href="www.example.com" rel="noreferrer">noreferrer!</a> 

これは、HTML5で導入された新機能ですので、それはすべてのブラウザでサポートされていません。

編集:According to Wikipedia、Webkitのみが現在サポートしています。より一般的には、クライアントが最終的に何をしているかをクライアントが判断するので、Refererヘッダーが完全に送信されないようにすることはできません。

+0

正確には、この場合「すべてのブラウザでサポートされていません」とは、実際には「どこでもサポートされていません」という意味です。これは今日は役に立たない。 – duri

+0

Webkitベースのブラウザの最近のバージョンでは?とにかく、私は、クライアントが何をサポートしているのか、クライアントが何をサポートしているのかを制御することができないため、信頼できるものではないことを強調したいと思います。クライアントが望むものを送信するのを防ぐために__no way__があります。 – ChrisJ

+0

それは完璧です:( – dynamic

1

javascriptを使用してアンカーのクリックイベントをハイジャックしてカスタムHTTPヘッダーを送信できます。その後、本文を新しいページに置き換えます。しかし、これは一般的には良い実装ではないことを覚えておいてください。本当にこれが必要で、選択肢が不足している場合にのみ使用してください。 1つは、ブラウザの履歴を生成しません。

ここでは、JQueryの簡単なサンプルコードを示します。私はそれをテストしていませんが、それはあなたに基本的な考えを与える必要があります。

$("#myLink").click(function() 
{ 
    $.ajax({ 
     beforeSend: function(req) 
     { 
      req.setRequestHeader("Referer", ""); 
     }, 
     type:"GET", 
     url: "[proper url]", 
     success: function(result) 
     { 
      $("body").html(result); 
     } 
    }); 
}); 
+0

どうすればいいですか(ハイジャックではなく、カスタムhttpヘッダーを送信しますか?) – rene

+0

@rene: 'setRequestHeader'行を参照してください。 –

+0

私はこれを使うことができるのかどうかわからないのは、 "ページ"ではなく、ファイルへのリンクだからです。 – dynamic

関連する問題