Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

212
Vistas
javascript url call ejecutándose dos veces

Estoy tratando de mostrar estos datos json en un cuadro de alerta de javascript, pero lo muestra dos veces (mismo contenido). Está funcionando, pero no sé por qué muestra dos alertas. (javascript no es mi idioma preferido).

Esta es la respuesta de la URL llamada:

 { "type": "error", "response": { "message": "Could not start app" } }

Este es el código que estoy usando:

 <script type="text/javascript"> function call() { const Http = new XMLHttpRequest(); const url='https://url_to_get_the_response'; Http.open("GET", url); Http.send(); Http.onreadystatechange = (e) => { if (Http.responseText) { alert(Http.responseText); } } } </script>

Y recibo dos alertas, ambas contienen lo mismo (el resultado .json). Solo quiero uno de ellos.

He intentado agregar un return; y break call; en la sección if (Http.responseText) . Agregando el return; en la declaración if no hizo nada y agregó la break call; dejó de funcionar.

¿Algún consejo sobre esto? Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tu enfoque es correcto. El evento onreadystatechange se activa varias veces, ya que el atributo readyState cambia desde el principio hasta el final de una llamada a la API.

Al agregar la condición if para el readyState apropiado y el valor de status que viene en el objeto XMLHttpRequest . Resuelve este problema.

Puede leer más sobre esos atributos aquí readyState , status

 function call() { const Http = new XMLHttpRequest(); const url='https://jsonplaceholder.typicode.com/todos/1'; Http.open("GET", url); Http.send(); Http.onreadystatechange = (e) => { if (Http.readyState == 4 && Http.status == 200 && Http.responseText) { alert(Http.responseText); } } }
 <button onclick='call()'>Call</button>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda