【问题标题】:Sending an javascript array to a servlet将 javascript 数组发送到 servlet
【发布时间】:2015-01-29 08:03:19
【问题描述】:

您好,我一直在查看与我类似的其他线程,但我似乎无法让我的代码正常工作!

我需要将包含整数的JS array 发送到 servlet,这是当前代码:

Javascript 代码

function sendReminderEmails(){
$("#sendReminderEmails").click(function(){

var people = null;
var peopleBatch1 = null;

$.ajax({
    type: "POST",
    url:"getAllUnregisteredPeople",
    async: false,  
    success: function(data){      
    people =JSON.parse(data);
  }
});

 peopleBatch1 = people.splice(0,200);

 $.post("sendReminderEmails", {people:peopleBatch1,  mode : "insert"} , function(data){

   });
 });    
}

Servlet 代码

protected void doPost(HttpServletRequest request, HttpServletResponse response){    
  String peopleIDs[] = request.getParameterValues("people");    
}

它不断返回null! 谁能告诉我我做错了什么?

【问题讨论】:

  • 你也可以这样试试。 stackoverflow.com
  • 首先,为什么要使用async: false?其次,您的第一个 AJAX 请求的值响应是什么?
  • 因为我需要一次处理一批列表,所以我需要在第二批开始之前完成第一批!这就是我将数组拼接起来的原因
  • 您可能需要解析已发布消息的正文 - 检查此答案:stackoverflow.com/questions/3831680/…
  • 我试过使用字符串缓冲区!仍然为空,当我查看 queryParamters 下位中的请求参数时,它会显示“{undefined=[, , , , , , , , , , , , , , ”

标签: java javascript jquery arrays servlets


【解决方案1】:

您必须使用JSON.stringify 将您的 JavaScript 对象作为 JSON 字符串发送。

更改您的代码

var obj = { people: peopleBatch1, mode: "insert" };
$.post("sendReminderEmails",JSON.stringify(obj) , function(data) {});

在 Servlet 方面你需要你使用

String jsonStr = request.getParameter("people");

然后将此 jsonStr 转换为 JSON 对象。

【讨论】:

  • 我也这样做了,但是在 java 端我得到了错误,因为里面有 [] 括号!
  • 错误是什么?你能贴在这里吗?将 jsonStr 转换为 JSON 对象时是否出现此错误?
  • 我周五试过了!我已经更改了我的代码,因为让我再试一次然后再传下去!
  • 看到这个link
【解决方案2】:

在“$ajax”中你需要传递所需的参数,例如

   var myArray={'john', 'paul'};
   $.ajax ({
            type: "POST",
            url:"getAllUnregisteredPeople",
            data: {people: myArray}
            async: false,  
            success: function(data) {      
                people = JSON.parse(data);
            }
        });

【讨论】:

  • 这是一个从数据库中提取数据的servlet!在另一篇文章中,我确实尝试将数据与密钥一起传递
猜你喜欢
  • 2013-12-21
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2014-10-11
  • 2019-12-11
  • 2013-12-31
相关资源
最近更新 更多