2011-04-14 12 views

Respuesta

2

ve la página de donde vino, al igual que hacer clic en un enlace.

Para probar esto desde cualquier página, redirigir a una página phpinfo() o cualquier otra página que hace eco de las cabeceras, por ejemplo:

window.location='http://hosting.iptcom.net/phpinfo.php'; 

(página sacado de azar búsqueda en Google)

8

Con algunas excepciones, el encabezado enviado es de la página con la redirección, no la referencia de la página que hizo la redirección. Esto está en contraste con los redireccionamientos del lado del servidor, que conservan la referencia original.

Por lo tanto, si un visitante va desde A.html a B.html y B.html desencadena una location.href redirigir a C.html, el servidor web verá B.html como la de referencia. (Si lo hizo la redirección desde B.html a C.html en el serverside, A.html sería la de referencia para C.html.)

Las versiones anteriores de Internet Explorer enviará un encabezado en blanco, al igual que (como siempre) redirecciones de HTTPS a HTTP.

+0

Lo sentimos, ¿podría aclarar lo que entendemos por "la de referencia de antemano"? – dan

2

mayoría de los navegadores pasará un HTTP_REFFERER con location.href, pero IE en algunos casos no lo hace.

Si los refferers son realmente importantes para usted, entonces usted puede hacer esto:

function goTo(url) { 
var a = document.createElement("a"); 
if(!a.click) { //Only IE has .click so if it doesnt exist use the simple method where the refferer is passed on other browsers. 
    location.href = url; 
    return; 
} 
a.setAttribute("href", url); 
a.style.display = "none"; 
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(a); 
a.click(); 
} 
Cuestiones relacionadas