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

285
Views
Ajax envía un objeto JSON con dos matrices a un servlet y analiza en el servlet java sin jQuery

Tengo que enviar dos arreglos a un servlet, uso una llamada Ajax POST que envía un objeto JSON, y luego tengo que leer los datos enviados en dos listas o arreglos en una clase de servlet en Java. Prefiero no usar jQuery para llamadas Ajax. No estoy muy familiarizado con json, utilicé un código que se encuentra en stackoverflow y no puedo entender si hay un problema al enviar o analizar datos.

Este es el método para realizar la llamada Ajax en Javascript, donde cback es la función de devolución de llamada, method = "POST" y url es la url del servlet:

 function makeCall(method, url, from, to, cback) { var req = new XMLHttpRequest(); req.onreadystatechange = function() { cback(req) }; req.open(method, url); var obj = {}; obj["from"] = from; obj["to"] = to; var data = JSON.stringify(obj); req.send(data); }

Aquí está el método doPost en el controlador de servlet especificado por la url. Aquí es donde encontré el problema: después de hacer getParameter, las cadenas json1 y json2 son nulas:

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //... String json1 = request.getParameter("from"); String json2 = request.getParameter("to"); Gson gson = new Gson(); ArrayList<Double> listFrom = gson.fromJson(json1, new TypeToken<ArrayList<Categoria>>() {}.getType()); ArrayList<Double> listTo = gson.fromJson(json2, new TypeToken<ArrayList<Double>>() {}.getType()); //... }

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Su ajax está enviando JSON pero su servidor está esperando datos de formulario, que tienen JSON.
Para enviar los datos como su servidor espera, codifique cada matriz en JSON y envíelos como datos de formulario

 function makeCall(method, url, from, to, cback) { var req = new XMLHttpRequest(); req.onreadystatechange = function() { cback(req) }; req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.open(method, url); var params = new URLSearchParams({to: JSON.stringify(to), from: JSON.stringify(from)}); req.send(params.toString()); }
over 4 years ago · Santiago Trujillo 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!