【发布时间】:2012-01-13 18:41:43
【问题描述】:
我通过带有 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 中手动将请求创建为字符串。
感谢您的帮助。
【问题讨论】:
-
能否设置数据为'data': {'ids': 0,'ids': 1,'ids': 2, 'ids': 3}?
-
@SKS,你试过吗?你最终会得到一个只有 { 'ids': 3 } 的地图,因为你正在用每个地图条目清除 id。
-
@marchaos: 是的,看我下面的帖子。我建议写一个js函数来手动设置查询字符串:(
标签: jquery ajax arrays playframework