jQuery.ajax向后台传递数组问题的解决方法


Posted in jQuery onMay 12, 2017

今天重温了一个问题,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);
}

观察浏览器中发送的请求,可以发现参数如下:

jQuery.ajax向后台传递数组问题的解决方法

可以看到,参数的名字为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...
  }
});

修改之后重新发出请求,观察浏览器:

jQuery.ajax向后台传递数组问题的解决方法

请求参数2

这次参数不带”[]”了,并且后台可以成功接收到该数组。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
jQuery 实时保存页面动态添加的数据的示例
Aug 14 jQuery
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
jQuery 隐藏/显示效果函数用法实例分析
May 20 jQuery
如何在vue 中引入使用jquery
Nov 10 jQuery
jQuery遮罩层实例讲解
May 11 #jQuery
jQuery zTree树插件动态加载实例代码
May 11 #jQuery
jQuery实现的简单在线计算器功能
May 11 #jQuery
jQuery+PHP+Mysql实现抽奖程序
Apr 12 #jQuery
JQuery实现定时刷新功能代码
May 09 #jQuery
jQuery插件开发发送短信倒计时功能代码
May 09 #jQuery
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 #jQuery
You might like
php 归并排序 数组交集
2011/05/10 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
基于滚动条位置判断的简单实例
2017/12/14 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
python读写二进制文件的方法
2015/05/09 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
大专生工程监理求职信
2013/10/04 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
借条格式范本
2015/05/25 职场文书
2016新年晚会开场白
2015/12/03 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
java项目构建Gradle的使用教程
2022/03/24 Java/Android