2010-01-28 8 views
30

Se cerco qualcosa su google e clicco su un risultato (mytestsite.com), il referer di quel sito sarà l'URL della ricerca google.Come si ottiene l'Url Referer tramite un javascript include?

Ora su quel sito è presente un file JS che viene utilizzato per scopi di tracciamento. Tuttavia, il referrer di quella richiesta di file JS è mytestsite.com ... non c'è modo per il server che gestisce la richiesta JS di sapere che proviene da una ricerca su google?

risposta

4

Un tag script farà sempre riferimento al documento che lo sta acquistando. Se stai facendo qualcosa di speciale sul server, potresti voler prendere in considerazione l'utilizzo di una sessione o dei cookie.

+1

il referente è disponibile per l'altra risposta qui. –

+2

@boomhauer: Le soluzioni sono praticamente le stesse, con la differenza che non ho menzionato 'document.referrer'. Il mio punto era che il server non può conoscere il referrer del sito precedente quando viene richiesto JS (solo quando è richiesto l'HTML), che è quello che la domanda stava ponendo. L'unica differenza nella soluzione è che l'altra risposta sta passando il referrer come stringa di query anziché come intestazione di richiesta. Ho aggiornato la mia risposta per chiarire l'intento e la soluzione, ma generalmente penso che le persone stiano interpretando erroneamente la domanda. –

+0

La seconda parte di questa risposta è errata e l'esempio non può funzionare. 'referer' è tra i [nomi di intestazione proibiti] (https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name) che" non può essere modificato a livello di codice ". – iamnotmaynard

87

Sono un po 'poco chiaro su ciò che si sta cercando di fare, ma si può afferrare il referrer con JavaScript utilizzando:

document.referrer 

... e passarlo insieme al server nella richiesta per il File JS. Diversi modi per farlo ... ecco uno:

<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

è un po 'strano che non rispondi contrassegnato come corretto. 'document.referrer' - è il migliore –

Problemi correlati