2012-03-09 18 views
10

¿Hay alguna manera de detectar si una página web me redirigirá a otra, conociendo su URL? Me refiero a la situación cuando escribe URL en un campo de texto y el script lo examina para las redirecciones 3xx.detectando una redirección con javascript, ¿cómo?

+0

Hay un evento 'onbeforeunload', ¿eso es lo que quieres? – fardjad

+0

@fardjad Quizás no lo explique correctamente. Necesito algo como [esto] (http://www.internetofficer.com/seo-tool/redirect-check/), pero con javascript, no php – burtek

+0

Si cumple con la misma política de origen, probablemente debería ser capaz de obtener el 302 encabezado a través del objeto XHR. – zzzzBov

Respuesta

3

Sí, puede hacerlo fácilmente en Javascript. Se vería algo como:

var xhr = new XMLHttpRequest(); 
xhr.onload = function() { 
    if (this.status < 400 && this.status >= 300) { 
    alert('this redirects to ' + this.getResponseHeader("Location")); 
    } else { 
    alert('doesn\'t redirect '); 
    } 
} 
xhr.open('HEAD', '/my/location', true); 
xhr.send(); 

Por desgracia, esto sólo funciona en su propio servidor, a no ser que te encuentras con un servidor con CORS establecieron. Si desea trabajar de manera uniforme en cualquier dominio, tendrá que hacerlo desde el servidor.

+0

Parece ser la mejor solución – burtek

Cuestiones relacionadas