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

141
Vistas
Función onclick que envía datos a un servidor con ajax

Me dieron la tarea de hacer un sitio web con HTML/CSS/JS y tener 3 botones que, cuando se hace clic, envían un código como "10", "01" y "11" a un programa C++. Se espera que el programa C++ envíe una respuesta y realice una función según el código que reciba. Envíe algunos datos al sitio web y el sitio web debería dar una respuesta al programa C++.

Soy bastante nuevo en Ajax y estoy tratando de entender si este es el camino correcto para que ambas partes se comuniquen entre sí.

por ahora hice esto en HTML :

 <button class="btn" id="btnfront" onclick="sendfrontimg()">front</button> <button class="btn" id="btnback" onclick="sendbackimg()">back</button> <button class="btn" id="btnboth" onclick="sendbothimg()">both</button>

y en el archivo Javascript (para un botón):

 function sendfrontimg() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); }

y esta parte para que la función de callback de llamada tenga una respuesta del servidor:

 function sendfrontimg(callback) { var httpRequest = new XMLHttpRequest(); httpRequest.onload = function(){ // When the request is loaded callback(httpRequest.responseText);// We're calling our method }; httpRequest.open('GET', "/echo/json"); httpRequest.send(); }

es esto correcto hasta ahora?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su principal problema es que desea enviar una respuesta desde el servidor, seguir haciendo cosas en el servidor y, cuando termine, enviar otra respuesta. Esto no se puede hacer con el protocolo http, ya que el comportamiento predeterminado de HTTP/1.0 es abrir una conexión TCP separada para cada par de solicitud/respuesta HTTP . Entonces, una vez que el servidor envía una respuesta a una llamada http, la "conversación" se cierra. Si desea mantener abierta una comunicación bidireccional entre el servidor y los clientes conectados, debe usar un protocolo de socket web ws:// . Si la operación que está ejecutando en el servidor no consume demasiados recursos ni mucho tiempo, puede seguir usando http y dejar que el cliente se bloquee y espere hasta que el servidor complete su trabajo y finalmente envíe la respuesta. Se necesita más información para poder darle una respuesta más precisa.

Los sockets web seguramente se adaptan mejor a su caso de uso, puede consultar https://socket.io/ . Si aún desea usar una API REST, no use la antigua API xhr, use una API basada en promesas, fetch nativa o alguna biblioteca como axios que hace que las cosas sean mucho más fáciles de administrar.

over 4 years ago · Santiago Trujillo 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