Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

146
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!