2010-01-28 7 views
30

Si busco algo en google y hago clic en un resultado (mytestsite.com), el referente a ese sitio será la URL de la búsqueda de google.¿Cómo se obtiene el Url Referer a través de un javascript incluido?

Ahora en ese sitio, hay un archivo JS incluido que se usa con fines de seguimiento ... sin embargo, la referencia a esa solicitud de archivo JS es mytestsite.com ... no hay forma de que el servidor maneje la solicitud JS a saber que se originó a partir de una búsqueda en google?

Respuesta

4

Una etiqueta de script siempre se referirá al documento que está obteniéndola. Si está haciendo algo especial en el servidor, puede considerar usar una sesión o cookies.

+1

la referencia está disponible para la otra respuesta aquí. –

+2

@boomhauer: Las soluciones son prácticamente las mismas, con la diferencia de que no mencioné 'document.referrer'. Mi punto era que el servidor no puede conocer la referencia del sitio anterior cuando se solicita el JS (solo cuando se solicita el HTML), que es lo que la pregunta estaba haciendo. La única diferencia en la solución es que la otra respuesta está pasando la referencia como una cadena de consulta en lugar de como un encabezado de solicitud. He actualizado mi respuesta para aclarar la intención y la solución, pero en general creo que la gente está malinterpretando la pregunta. –

+0

La segunda parte de esta respuesta es incorrecta y el ejemplo no puede funcionar. 'referer' es uno de los [nombres de encabezado prohibido] (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name) que" no se puede modificar mediante programación ". – iamnotmaynard

87

Estoy un poco claro en lo que usted está tratando de hacer, pero se puede agarrar la de referencia con JavaScript usando:

document.referrer 

... y pasarlo junto al servidor en su solicitud de Archivo JS. Varias maneras de hacerlo ... aquí hay una:

<script> 
var e = document.createElement("script"); 
e.src = 'someJSfile.js?referrer='+document.referrer; 
e.type="text/javascript"; 
document.getElementsByTagName("head")[0].appendChild(e); 
</script> 
+1

es un poco gracioso que tu respuesta no esté marcada como correcta. 'document.referrer' - es el mejor –

Cuestiones relacionadas