web-dev-qa-db-fra.com

Puis-je obtenir le référent?

J'ai un site Web sur lequel je crée dynamiquement du code Javascript à l'aide du gestionnaire ASP.NET dans lequel je dois ajouter le référent à une base de données.

Je veux obtenir un référent de référent comme ceci:

  • website1
  • website2 (où je crée un pixel vers un autre site)
  • website3 (où se trouve le pixel)

Je n'ai pas accès au code pour website1, sur website2 Je ne peux affecter que du JavaScript.

Si je reçois un référent dans l'état actuel de l'application, j'obtiens website2.

Existe-t-il un moyen d'obtenir website1 comme référent?

34
eugeneK

Vous pouvez transmettre cette valeur: document.referrer.

Cette expression devrait être évaluée sur le site Web 2, et non sur le site Web 3.

Donc:

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

La demande adressée au site Web3 inclura alors le référent.

50
Tom

Il est impossible d'obtenir directement le référent de website2 sur website3. Cependant, comme vous pouvez utiliser javascript sur website2, vous pouvez obtenir le référent (document.referrer) et ajoutez-le à l'url du pixel que vous obtenez. Par exemple:

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

J'espère que cela pourra aider

9
Daan Wilmer