jQuery.ajax向后台传递数组问题的解决方法
2017-05-12 09:40
746 查看
今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值。
前台js方法部分代码如下:
//创建一个测试数组 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)
@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属性
$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "boxType": 0, "time": new Date().getTime() }, traditional: true,//这里设置为true success: function(data) { //do sth... } });
修改之后重新发出请求,观察浏览器:
请求参数2
这次参数不带”[]”了,并且后台可以成功接收到该数组。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 【转】jQuery.ajax向后台传递数组问题
- jquery.ajax的url中传递中文乱码问题的解决方法
- jQuery.ajax向后台传递数组问题
- jquery.ajax()向后台传递数组数据问题,java后台无法接受
- jQuery.ajax向后台传递数组问题
- 前端使用Jquery的getJSON方法,后台使用PHP,解决IE和火狐Firefox中存在的跨域ajax请求问题。
- jQuery.ajax向后台传递数组问题
- jQuery.ajax向后台传递数组问题
- jquery.ajax()向后台传递数组数据问题,java后台无法接受
- jquery.ajax的url中传递中文乱码问题的解决方法
- 关于jquery使用ajax传递数组到struts后台的接受问题
- STRUTS+AJAX+JSP 请求到后台乱码问题解决方法
- jQuery中ajax的使用与缓存问题的解决方法
- jQuery中ajax的使用与缓存问题的解决方法
- jquery中通过ajax调用webservice传递数组参数的问题
- jquery $.ajax()取xml数据的小问题解决方法
- jquery $.ajax()取xml数据的小问题解决方法
- jQuery的ajax()方法提交数组问题
- 真正的JQuery.ajax传递中文参数的解决方法
- JQuery.ajax传递中文参数的解决方法 推荐