I have a website on which I dynamically create Javascript code using ASP.NET handler in which I should add the referrer to a database.

I want to get referrer of referrer like so:

  • website1
  • website2 (where I create pixel to another site)
  • website3 (where pixel is located)

I don't have code access to website1, on website2 I can only assign JavaScript.

If I get referrer in current application state I get website2.

Is there a way to get website1 as referrer?


You can pass this value along: document.referrer.

That expression would need to be evaluated on website 2, not on website 3.

So:

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

The request to website3 will then include the referrer.


It is impossible to get the referrer of website2 on website3 directly. However, since you can use javascript on website2, you could get the referrer (document.referrer) and add it to the url of the pixel you get. For example:

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

Hope that helps