数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true
数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true
转载自:https://www.cnblogs.com/goloving/p/7676811.html
数组类型参数传递:
若一个请求中包含多个值,如:(test.action?tid=1&tid=2&tid=3),参数都是同一个,只是指定多个值,这样请求时后台会发生解析错误,应先使用 tradititonal 格式化:
$.ajax({type:"post",url:"test.action",data:{tid:[1,2,3]},traditional:true,…… });
起初我认为traditional:true,可有可无,但是后来不用traditional的时候,发现后台无法获取selectUsers的值,那么可以肯定的是traditional默认值是false。
当提交的参数是数组( {selectUsers:[value,value,value]} ),如果是false的话,则提交时会是"selectUsers[]=value&selectUsers[]=value";如果设置成true,则提交时会是"selectUsers=value&selectUsers=value",这样后台就能用String[] ids=request.getParameterValues("selectUsers"); 获取到值。
官方文档的解释如下:traditional 类型:Boolean
如果你想要用传统的方式来序列化数据,那么就设置为 true。(底层原理其实就是设置param()方法的traditional参数为true)
Set this to true if you wish to use the traditional style of param serialization
1、前台jquery
function deleteAll() {var selectUsers=new Array();//var selectUsers = null;$(":checkbox[name='userID']").each(function() {if ($(this).prop("checked"))selectUsers.push($(this).val());//selectUsers += "," + $(this).val();});$.ajax({async : false,traditional: true,type:"post",url:"elecUserAction_delete.do",data:{selectUsers:selectUsers},success:function(responsText){if(responsText=="1"){alert("删除成功");}}}); }
2、后台Action代码
public String delete(){String[] ids=request.getParameterValues("selectUsers"); System.out.println(ids.toString());PrintWriter out = null;out.write("1");return home(); }
总结:
当ajax传的data数据是数组时,必须设置traditional参数,并为true,然后后台才可以通过request.getParameterValues()方法获取到数据,否则会解析出错。
数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true相关推荐
- ajax前端传数组后端接收,前端AJAX传递数组给Springmvc接收处理
前端传递数组后端(Spring)来接收并处理: 测试页面 function ccc() { var btn = document.getElementById("btn"); $. ...
- php ajax传递数组,ajax怎样传递数组到后台
这次给大家带来ajax怎样传递数组到后台,ajax传递数组到后台的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 我们在使用ajax异步的提交多选框得到需要操作的对象的id,这时我们可以把每一 ...
- ajax传递数组 用struts2来接收
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a78460750/article/de ...
- pythonjson构建二维数组_python后台获取ajax传递的二维数组,保持原有数据结构不变...
python后台获取ajax传递的二维数组,保持原有数据结构不变. 前台主要程序: arr_data = [[1,2,3],[4,5,6]];//创建二维数组 var json_data = JSON ...
- ajax传递数组怎么传?ajax数组传递
在我们平时的开发中,经常会需要用到ajax,关于ajax是什么,又该如何传递参数,相信通过上几篇文章你们已经有所了解.但是,ajax中要如何传递数组你们又知道吗?今天我们就来聊一聊ajax中该如何传递 ...
- ajax传递数组到后台时为空,ajax传递数组,后台接收为null解决方法
traditional:true,加上这个就好,默认为false,即允许深度序列化参数,但是servlet api不支持,所有设为true阻止就好了. $.ajax({ type:'post', ur ...
- Ajax传递数组对象
Ajax传递数组对象 一.JS部分写法 1.JSON.stringify(submitMainComponent.billSubmit) 转json 2.contentType: 'applicati ...
- php ajax向后台怎么传数组,利用ajax传递数组及后台接收的方法详解
这篇文章主要给大家介绍了关于利用ajax传递数组及后台接收的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们一起来学习学习吧. 前言 我们在使用ajax异步的提交多选框得到需要 ...
- ajax里数组添加数据,小笔记(一):ajax传递数组及将ajax返回数据赋值
当使用ajax传递数据时,有可能传递多个数据,这是使用以下方法传递数据就会显得数据过多且混杂 $.ajax({ type:'post', url:url, data:{data:data,conten ...
最新文章
- 水稻微生物组时间序列分析精讲1-模式图与主坐标轴分析
- Python中urllib2总结
- module._init_() takes at most 2 arguments (3 given) (scrapy tutorial w/ xpath)
- P3373 【模板】线段树 2 (未完待续)
- mysql 只导数据不含表结构
- one or more of the ports are invalid. Open the server editor and correct the invalid ports
- 关于 $ Super $ $ 和 $ Sub $ $ 的用法
- win8: 清除iframe的缓存
- 如何从一个 C# 的 dump 中挖到机器相关的信息?
- hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作
- 年底送书活动:送出6本技术书籍,价值372元!
- 如何拉取k8s镜像_K8s 从懵圈到熟练 – 镜像拉取这件小事
- 多用户企业文件管理系统源码_设计项目管理系统,可以,并有必要
- 用 Python 分析了 10000 场吃鸡数据,原来吃鸡要这么玩!
- 数据库建表设计规范及原则
- 学弟拿到了大厂推荐算法岗offer,分享一波他的经验
- BZOJ 2463: [中山市选2009]谁能赢呢?
- 2019.11软考软件设计师归来心得体会及复习备考指南
- jQuery(一个JavaScript库)
- PSENet(Shape Robust Text Detection with Progressive Scale Expansion Network)论文详解