小编典典

使用数据作为数组播放框架和jQuery Ajax请求

ajax

我正在通过带有Play Framework后端的jQuery通过Ajax发送值数组,而我遇到了问题。

这是一个例子:

$.ajax ({
    'type':     'POST',
    'url':          '/url',
    'timeout':  5000,
    'data':     {'ids': [0, 1, 2, 3]},
    'dataType': 'json',
    'success':  function (oData) {
        // Process ...
    }
});

但是在Play!中,如果我执行params.get("ids");,我将得到一个空值,如果我也执行了一个params.getAll("ids");

我知道问题出在哪里,jQuery将数据发送为:ids[]=0&ids[]=1&ids[]=2&ids[]=3
但是播放!框架期望将数组数据发送为ids=0&ids=1&ids=2&ids=3

是否有适当的方法正确发送数据(或在控制器中将数据作为数组获取)?

到目前为止,我设法使其简单地起作用,但是在javascript中手动将请求创建为String。

谢谢你的帮助。


阅读 313

收藏
2020-07-26

共1个答案

小编典典

一种方法(使您的JavaScript代码保持完整)只是声明您的控制器方法,如下所示:

public static void myMethod(@As("ids[]:")List<Long> ids) {
    System.out.println(ids.get(0));
}

..输出是您期望的:

[0, 1, 2, 3]

2020-07-26