Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

418
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!