2010-03-17 24 views
7

Hola, he intentado lo siguiente para encontrar la referencia en MSIE/IE7 e IE8, pero está volviendo en blanco cada vez;HTTP Referrer e IE7 e IE8

PHP:

<? 
echo $_SERVER['HTTP_REFERER']; 
?> 

javascript:

document.write('Thanks for visiting from ' + document.referrer); 

¿Alguno sabe cuál es el problema podría ser que estoy usando referering document.location desde una página en otro dominio y el trabajo bien con todos los otros navegadores menos MSIE.

¡Cualquier ayuda sería genial!

Respuesta

5

El HTTP Referer header no es requerido por el protocolo http:

  • Sólo se envía como un información
  • El navegador puede, o no puede, enviarlo (lo que explicaría por qué estás obteniéndolo con algunos navegadores, y no obteniéndolo con algunos otros)
  • Algún firewall/software de seguridad podría eliminarlo, supongo, en algunas situaciones (Ya lo he visto, hace algunos años, si mal no recuerdo ly)
  • Puede ser fácilmente falsificados por el usuario

Lo que significa que no se puede confiar en la Referer para su aplicación: se puede usar para proporcionar algún Funcionalidad additionnal, pero su aplicación debe trabajar incluso si no está allí, o no es correcto.

+1

¿Alguien sabe por qué circunstancias específicas IE8 o IE7 se niegan a enviar una referencia en qué se refiere? Considere un navegador predeterminado sin firewall. – cocacola09

+0

@ cocacola09 Este sitio afirma que se trata de un error http://webbugtrack.blogspot.de/2008/11/bug-421-ie-fails-to-pass-http-referer.html – DanFromGermany

1

HTTP_REFERRER no funciona en el navegador IE funciona bien para todos los navegadores como mozilla, safari, opera, etc ... El método de referencia no reconoce en IE devolverá nulo cuando lo apliquemos para IE. En realidad, usar HTTP_REFERRER no es un criterio correcto porque no podemos esperar que funcione o no, ya que no es un HEADER HTTP estándar.

+0

'HTTP_REFERER', no' HTTP_REFERRER '. – DCShannon

-2

He aquí un truco que puede probar:

var referLink = document.createElement('<a href="' + theUrl + '" target="' + theWindow + '"></a>'); 
    document.body.appendChild(referLink); 
    referLink.click(); 
Cuestiones relacionadas