Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

139
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda