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

423
Vistas
HttpMediaTypeNotSupportedException: el tipo de contenido 'application/x-www-form-urlencoded;charset=UTF-8' no es compatible

Estoy tratando de hacer una publicación con javascript usando ajax en un controlador de resorte

 $("#crear").click(function () { var user = document.getElementById("user").value; var client = document.getElementById("client").value; var documents = document.getElementById("documents").value; if (user==null||client==null||documents==null){ document.getElementById("error").innerHTML='FALTAN COSASsssssssssss'; alert('Rellene todo los campos!') } const data={ fecha_inicio:'A', id:'A', fecha_entrega:'A', usuario:{ nombre:user }, cliente: { nombre:client } } $.ajax({ url: urlCrearAlta, type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', data: data, success: function(data) { // ... } }); $.post(urlCrearAlta,JSON.stringify(data),function (data,satus){ console.log('${data} and status is ${status}') }); document.getElementById("error").innerHTML=user+client+documents; });

y codigo java

 @RequestMapping("/altas") @RestController public class AltaRestController { private AltaController altaController; public AltaRestController(AltaController altaController) { this.altaController = altaController; } @PostMapping("/create-alta") public void createAlta(@RequestBody AltaDTO altaDTO) { altaController.createAlta(altaDTO); }

Recibo el error Resuelto [org.springframework.web.HttpMediaTypeNotSupportedException: Tipo de contenido 'aplicación/x-www-form-urlencoded;charset=UTF-8' no compatible]

Cuando uso $.ajax no envía ninguna solicitud, solo cuando uso $.post envía la solicitud

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

0

El problema parece ser cómo está utilizando el método $.post . jQuery usa application/x-www-form-urlencoded;charset=UTF-8 contentType en la publicación de forma predeterminada si no especifica otro contentType. Combinado con la anotación @RequestBody en el backend (que requiere application/json de forma predeterminada), da como resultado la excepción vista y el código de estado 415.

La solución a este problema debería ser bastante fácil, simplemente agregue la configuración correcta para el método .post, algo como esto:

 $.post({ url: urlCrearAlta, type: "POST", contentType: 'application/json', dataType: 'json', data: JSON.stringify(data) }) .done((data, status) => { console.log(data, status); //do whatever you like with data and status });

Además, como se indica en la documentación de jQuery aquí , $.post es solo un método abreviado para $.ajax , por lo que si $.ajax no funciona y $.post sí, debe haber algún error en la forma en que configura la solicitud o cómo usted maneja los métodos de devolución de llamada. El principal sospechoso para mí sería la función de success que especifica en la solicitud $.ajax , verifique que no haya nada malo allí, o simplemente use los otros métodos de devolución de llamada, como .done , .fail y .always

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