web-dev-qa-db-ja.com

リファラーを取得できますか?

ASP.NETハンドラーを使用してJavascriptコードを動的に作成するWebサイトがあり、そこにデータベースにリファラーを追加する必要があります。

私は次のようなリファラーのリファラーを取得したい:

  • website1
  • website2(別のサイトにピクセルを作成する場所)
  • website3(ピクセルが配置されている場所)

website1へのコードアクセス権がありません。website2では、JavaScriptのみを割り当てることができます。

現在のアプリケーション状態でリファラーを取得すると、website2が取得されます。

リファラーとしてwebsite1を取得する方法はありますか?

34
eugeneK

この値を渡すことができます:document.referrer

その表現は、ウェブサイト3ではなく、ウェブサイト2で評価する必要があります。

そう:

// website2.html
<img src="website3.com/pxl.gif" id="pxl" />
<script>
document.getElementById('pxl').src += '?ref=' + encodeURIComponent(document.referrer);
</script>

次に、website3へのリクエストにリファラーが含まれます。

50
Tom

Website3で直接website2のリファラーを取得することは不可能です。ただし、website2でjavascriptを使用できるため、リファラー(document.referrer)取得したピクセルのURLに追加します。例えば:

var referer = document.referrer;
var pixelUrl = 'http://website3/pixel?referrer=' + escape(referrer);
// create pixel...

役立つことを願っています

9
Daan Wilmer