jQuery.ajax向后台传递数组问题
2017-04-21 17:38
483 查看
jQuery.ajax向后台传递数组问题
今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下:
[javascript] view
plain copy
//创建一个测试数组
var boxIds = new Array();
boxIds.push(12182);
boxIds.push(12183);
boxIds.push(12184);
//向后台交互
$.ajax({
url: "/xxx",
type: "GET",
data: {
"boxIds": boxIds,
"boxType": 0,
"time": new Date().getTime()
},
success: function(data) {
//do sth...
}
});
后台controller代码(SpringMVC)
[java] view
plain copy
@ResponseBody
@RequestMapping(value = "/box/changeLock")
public String changeLock(final Long[] boxIds, final int boxType) {
return locker_ChangeLockService.changeLock(boxIds, boxType);
}
观察浏览器中发送的请求,可以发现参数如下:
可以看到,参数的名字为boxIds[]而不是我们所定义的boxIds,也就是说,当传递数组时,会在我们的数组名称后自动加上”[]”,所以后台接不到。
解决办法:
设置jQuery.ajax的tradional属性
[javascript] view
plain copy
$.ajax({
url: "/xxx",
type: "GET",
data: {
"boxIds": boxIds,
"boxType": 0,
"time": new Date().getTime()
},
traditional: true,//这里设置为true
success: function(data) {
//do sth...
}
});
修改之后重新发出请求,观察浏览器:
这次参数不带”[]”了,并且后台可以成功接收到该数组。
相关文章推荐
- jQuery.ajax向后台传递数组问题
- 【转】jQuery.ajax向后台传递数组问题
- jQuery.ajax向后台传递数组问题
- 关于jquery使用ajax传递数组到struts后台的接受问题
- jQuery.ajax向后台传递数组问题
- jQuery.ajax向后台传递数组问题的解决方法
- jquery.ajax()向后台传递数组数据问题,java后台无法接受
- jquery.ajax()向后台传递数组数据问题,java后台无法接受
- jQuery中通过ajax调用webservice传递数组参数的问题实例详解
- jquery中ajax传递中文参数和js数组问题
- JQuery.ajax传递数组问题
- jquery中通过ajax调用webservice传递数组参数的问题
- 关于jquery、ajax向后台传输数组的问题
- ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)
- ajax向后台传递数组问题
- ajax传递数组后台接收不到值的问题
- 后台ajax调用中字符串到jquery中的json对象和数组对象转换问题
- jquery中通过ajax调用webservice传递数组参数的问题
- ajax传递数组后台接收不到值的问题
- jsp中利用jquery+ajax传递json格式参数与前后台之间