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

171
Vistas
El envío de datos a través de XMLHTTPRequest no funciona en el servidor web

Estoy tratando de enviar algunos datos sobre los usuarios (en este ejemplo, solo el nombre y el apellido) desde un archivo html en un servidor web a través de XMLHTTPRequest a un servidor Node Express. Funciona bien en un servidor local, simplemente no puedo hacer que funcione en el servidor web. Esta es la parte crucial de mi html:

 <br> <div class="textbold">First Name</div> <input name="fn" id= "first"><p> <div class="textbold">Last Name</div> <input name="ln" id="last"><p> <br> <input type="button" class="button" onclick="request()" value="Send"> <script> function request() { var firstname = document.getElementById("first").value var lastname = document.getElementById("last").value var xhr = new XMLHttpRequest() xhr.open('GET', "http://urlofmywebbrowser.com/request") xhr.setRequestHeader("Content-Type", "multipart/form-data"); xhr.send("firstn="+firstname+"&lastn="+lastname) } </script>

Este es el script del servidor express:

 var express = require('express') var app = express() var port = 3000 app.get("/request", function (req) { let firstname = req.query.firstn let lastname = req.query.lastn console.log(vorname, nachname)})

Luego, el script continúa guardando los datos en un archivo json, que nuevamente funciona bien en mi servidor local, pero aún no pude probarlo en el servidor web. Creo que los posibles errores pueden ser con la URL o el número de puerto, pero probé varias combinaciones y no puedo hacer que funcione. ¡Gracias de antemano por tu ayuda!

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

0

Una solicitud HTTP puede incluir datos en:

  • La cadena de consulta de una URL
  • El cuerpo

Si está realizando una solicitud GET, debe ir en la cadena de consulta de la URL.

Lo estás pasando a send() que lo pone en el cuerpo. Esto no está permitido, por lo que será ignorado.


Si lo coloca en el cuerpo (lo que significa cambiar a una solicitud POST), entonces debe hacer que el Content-Type coincida con el formato de datos que está utilizando.

Está utilizando application/x-www-form-urlencoded pero afirma que está enviando multipart/form-data .


Si lo pones en el cuerpo (ver arriba), entonces Express requiere que lo leas desde req.body y no desde req.query .

También requiere que agregue un middleware de análisis de cuerpo adecuado.


No debe olvidar " para finalizar un literal de cadena


No debe mezclar cadenas para construir formatos de datos. Eso no trata con caracteres especiales en la entrada. Use API que los construirán por usted.


las correcciones

Suponiendo que está intentando realizar una solicitud GET, entonces:

Eliminar xhr.setRequestHeader("Content-Type", "multipart/form-data");

y

Cambie xhr.send("firstn="+firstname+"&lastn="+lastname) a xhr.send()

y

Cambio:

 xhr.open('GET', "http://urlofmywebbrowser.com/request")

a

 const url = new URL("http://urlofmywebbrowser.com/request"); url.searchParams.append("firstn", "firstname"); url.searchParams.append("lastn", "lastname"); xhr.open('GET', url);
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