JavaScript - Comprobar conectividad en JavaScript

 
Vista:
Imágen de perfil de Danny

Comprobar conectividad en JavaScript

Publicado por Danny (2 intervenciones) el 25/07/2017 09:50:47
Hola,

Recientemente estoy aprendiendo JavaScript, y no me está siendo difícil al ya dominar algo de Java. La cuestión es que para mis prácticas estaba intentando hacer un pequeño programa que comprueba si una web está caída u operativa, y no he tenido éxito. En Java es bastante sencillo comprobar si una web devuelve 200 o 404, pero en JavaScript no he podido. He mirado muchos tutoriales pero ninguno me ha ha funcionado y no se donde está el error. Dejo mi código para que si alguien le echa un vistazo y encuentra el problema me pueda echar una mano a entender que he estado haciendo mal. Gracias de ante mano.


1
2
3
4
5
6
7
8
9
10
11
12
13
cadena = "http://google.com";
 
var request = new XMLHttpRequest();
request.open('GET', cadena, false);
 
if (request.status == "200") {
 document.write(cadena + "  OK");
}
 
if (request.status === "404") {
	document.write (" Error conexión");
 
}

La cuestión es que request.status no hace su función de clasificar según el estado de la conexión, por lo que intuyo que algo debe faltar fuera del if.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de [abZeroX]
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Comprobar conectividad en JavaScript

Publicado por [abZeroX] (130 intervenciones) el 26/07/2017 05:12:33
Hola Danny, modifique un poco tu codigo:

1
2
3
4
5
6
7
8
9
10
11
var candena = "index.html";
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
	if (request.status === 200) {
		console.log(cadena + "  OK");
	} else if (request.status === 404) {
		console.log("Error conexión");
	}
};
request.send(null);

Te comparto algunos enlaces de la MDN que campas te sirvan
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
https://developer.mozilla.org/es/docs/Web/API/XMLHttpRequest/readyState
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget/onload

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Danny

Comprobar conectividad en JavaScript

Publicado por Danny (2 intervenciones) el 26/07/2017 09:55:13
Hola,

Gracias por responder, aunque sigue sin funcionarme. Entiendo que este código es para comprobar una url en propio servidor, y lo que intento hacer es comprobar una url externa.

La cadena:

var candena = "index.html";

Veo que no tiene mucho sentido, ya que no interfiere en el request, y el url no contiene ningún valor. Incluso haciendo cambios sigue sin funcionar.

Para que me entiendas, la idea era hacer una página web que me compruebe 10 dominios en servidores diferentes, para ver si están caídos.

Voy a seguir probando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 553
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Comprobar conectividad en JavaScript

Publicado por kip (107 intervenciones) el 26/07/2017 16:08:41
Usas algun lenguaje del lado del servidor como PHP, Python o Java ? Si es asi puedes hacerlo desde alli sin problema alguno y luego desde tu web haces llamada al servidor(script que verifique la url) enviando lo necesario para que este se encargue de ello.

Pero cual es el problema ? Creo que esta en la seguridad que implementa el navegador y bloquea tu llamada porque no pertenece al mismo dominio la URL a la que intentas llamar en consola te aparece el mensaje

1
No 'Access-Control-Allow-Origin' header is present on the requested resource.

Puedes hacerlo desde JS directamente sin recurrir al servidor, pero a mi parecer resulta mejor hacerlo desde alli ya que debes colocar las cabeceras adecuadas en el destino y si no tienes control sobre este no podras hacer nada mas que recurrir al servidor.

https://www.html5rocks.com/en/tutorials/cors/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comprobar conectividad en JavaScript

Publicado por Manuel (1 intervención) el 12/11/2019 06:40:21
Esto no lo podrás realizar con JavaScript desde una consola de navegador. Como comentaban, el Access-Control-Allow-Origin es un cabecero con el que se indica que urls pueden acceder al servicio solicitado.

Yo intenté hacerlo con fetch de javascript y me lanzaba el mismo error, pero haciedolo desde nodejs no tuve problemas.

En caso que lo quieras hacer con JS desde consola del navegador, tendrás que pedirle al dueño de la pagina que ponga su cors para permitir el acceso a todos...algo dificil :S

Suerte y espero que te funcione
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comprobar conectividad en JavaScript

Publicado por Jose Rojas (1 intervención) el 03/09/2021 04:18:55
cadena = "http://google.com";

var request = new XMLHttpRequest();
request.open('GET', cadena, false);

//TE FALTA
request.send()

if (request.status == "200") {
document.write(cadena + " OK");
}

if (request.status === "404") {
document.write (" Error conexión");

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar