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

272
Visualizações
¿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?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório

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"; }
over 4 years ago · Santiago Trujillo Relatório

0

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

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