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

262
Vistas
¿Cuál es la forma correcta de enviar una cadena usando AJAX con Spring y Thymeleaf? Estado : 400

Recibo el error ""El parámetro de búsqueda de nombre de usuario requerido 'nombre de usuario' no está presente" al enviar datos usando ajax con Spring y Thymeleaf. Mi secuencia de comandos es como se muestra a continuación

 <script> $(document).ready(function() { $("#opusername").keyup(function() { var username = $('#opusername').text(); $.ajax({ type : "POST", contentType : "application/json", url : "/create/check-username-availability", data : {"username" : username}, dataType : 'json', timeout : 100000, success : function(data) { console.log("SUCCESS: ", data); }, error : function(e) { console.log("ERROR: ", e); }, done : function(e) { console.log("DONE"); } }); }); });

Mi controlador tiene este método que debería recibir la cadena y devolver un valor para indicar si el nombre de usuario está disponible o no.

 @RequestMapping(value = "/create/check-username-availability", method = RequestMethod.POST) @ResponseBody public String checkUsernameAvailability(@RequestParam("username") UsernameSearch username) { logger.info("Checking username availability for username = " + username.getUsername()); return "true"; }

Este es el objeto que creo que contiene el nombre de usuario String. Hice esto después de seguir los tutoriales y las respuestas aquí, pero nada parece funcionar.

búsqueda de nombre de usuario de clase pública {

 String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; }

}

Este es el error al depurar

 error:"Bad Request" exception:"org.springframework.web.bind.MissingServletRequestParameterException"

mensaje: "El parámetro de búsqueda de nombre de usuario requerido 'nombre de usuario' no está presente" ruta: "/ crear/verificar disponibilidad de nombre de usuario" estado: 400 marca de tiempo: 1489942516434

También quería preguntar cómo consumir el resultado del método de primavera. ¿Es posible obtener un valor booleano?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cambie @RequestParam a @RequestBody. Request param != cuerpo de la solicitud.

El error HTTP 400 significa que la solicitud tiene un formato incorrecto. En su caso, el controlador espera que la URL tenga un parámetro de "nombre de usuario". Por lo tanto, puede cambiar la llamada ajax para enviar el nombre de usuario como parámetro de solicitud, es decir, adjuntando "? nombre de usuario = fooBar" a la URL que está realizando la solicitud POST y cambiar la firma del método del controlador para aceptar @RequestParam ("nombre de usuario" ) String nombre de usuario, o cambie la anotación en el parámetro del controlador a @RequestBody, que le dice al controlador que los datos se enviarán como un objeto en el cuerpo de la solicitud.

about 4 years ago · Santiago Trujillo Denunciar

0

función ajax:

 var data = { username: $('#opusername').text() }; $.ajax({ type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', url: "/create/check-username-availability", data: JSON.stringify(data), // Note it is important success: function (result) { // do whatever you want with data } });

y en tu método java

 @RequestMapping(value = "/create/check-username-availability", method = RequestMethod.POST) @ResponseBody public String checkUsernameAvailability(@RequestBody UsernameSearch username) { logger.info("Checking username availability for username = " + username.getUsername()); return "true"; }
about 4 years ago · Santiago Trujillo Denunciar

0

¡No envíe sus datos como cadena! Haz lo siguiente:

 data : {"username" : username},
about 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