一般的,可能有些人在一个参数有多个值的情况下,可能以某个字符分隔的形式传递,比如页面上有多个checkbox:
$.ajax{url:"xxxx",data:{p: "123,456,789"}
}  

然后后台获取参数后再分隔,这种做法有很大弊端,试问如果某一个参数值中出现了分隔符所使用的字符,会出现什么情况呢?当然后台获取的参数将与实际情况不符. 
这时我想到了将上述代码写成这样:
$.ajax{url:"xxxx",data:{p: ["123", "456", "789"]}
}    

如果单纯写成这样,在java后台是无法取到参数的,因为jQuery需要调用jQuery.param序列化参数, 
jQuery.param( obj, traditional )  

默认的话,traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架, 
但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化,然后序列化结果如下:
p: ["123", "456", "789"] => p=123&p=456&p=456

随即,我们就可以在后台通过request.getParameterValues()来获取参数的值数组了, 
所以,比如我们前台有多个checkbox,前台的代码可以写成: 
var values = $("input[type=checkbox]").map(function(){return $(this).val();
}).get();
$.ajax{url:"xxxx",traditional: true,data:{p: values }
}  

转载于:https://www.cnblogs.com/dingjing0518/p/6823907.html

jQuery ajax的traditional参数的作用相关推荐

  1. JQuery.Ajax()的data参数类型

    JQuery.Ajax()的data参数类型 2017年9月14日:补充JQuery.Ajax()的数据类型 本文以前提到的三种类型,这三种参数本质上都是变成了类似"uname=alice& ...

  2. ajax webservice 参数类型,JQuery Ajax WebService传递参数的简单实例

    Asp.NET中利用jQuery实现Ajax时,在服务器端可以使用aspx,ashx,以及WebService等方式.最近研究了一下WebService方式,jQuery Ajax 方法调用 jQue ...

  3. jquery ajax 超时处理 不起作用,jQuery ajax超时处理

    jQuery - ajax超时处理 [示例代码] script> $(document).ready( function(){ $.ajax({ url:"jQuery - ajax. ...

  4. ajax的data参数类型,JQuery.Ajax()的data参数类型

    假如现在有这样一个表单,是添加元素用的. 用户名: 手机号: 生日: 我们不想使用表单submit的方式添加这个元素,我们就想使用ajax提交. 以前我们是这样实现的: 1 2 3 4 5 6 7 8 ...

  5. JQuery.Ajax()的data参数传递方式

    最近,新学c# mvc,通过ajax post方式传递数据到controller.刚开始传递参数,controller中总是为null.现记录一下,可能不全,纯粹记个学习日记. 重点在于参数的方式,代 ...

  6. jQuery $.ajax传递数组的traditional参数传递必须true 对象的序列化

    设置jQuery 的 traditional参数 实际上是设置 jQuery.param 的traditional 参数,默认为false,当设置为true后,会导致多层次的对象序列化为[object ...

  7. jquery ajax传递数组

    //定义一个数组 var selectCount=[]; $.ajax({ url:'/bb/aaa', type:'post', dateType:'json', traditional:true, ...

  8. ajax请求到参数太大获取参数失败问题,Ajax请求参数较长导致请求失败

    Ajax请求参数比较长,第5行参数大概1100个字符吧,是接口的请求报文. $.ajax({ type:"POST", url:"${ctx}/test.action?m ...

  9. jquery Ajax应用

    jQuery框架学习第六天:jQuery中的Ajax应用 jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理 ...

最新文章

  1. ASP.NET跨服务器上传文件的相关解决方案
  2. [2010国家集训队]Crash的旅游计划
  3. Action Framework Medium attribute 初始化逻辑
  4. git获取管理员权限 windows,windows下git怎么管理权限
  5. 改善代码设计 —— 处理概括关系(Dealing with Generalization)
  6. 为什么手工drop_caches之后cache值并未减少?
  7. Linux 3.2.8 内核启动过程
  8. android studio打包h5,Android Studio打包生成APK教程
  9. 人人开源搭建后台管理系统
  10. SpreadJS 2021 V14.1 Crack
  11. 使用QtCharts报错
  12. 魔兽对战平台服务器更新维护什么,官方对战平台每天5点维护是个什么梗
  13. 如何在面试中介绍自己的项目经验(作者原创版)
  14. Big Sur + karabiner + kernelmanagerd = 可能发烫
  15. 市场调研-前交叉韧带(ACL)重建市场现状及未来发展趋势
  16. css 全屏显示一张图片_css 如何让图片全屏的问题
  17. 使用命令行创建文件夹和创建文件
  18. 你与chatGPT有什么区别?
  19. 揭秘POS机套现江湖:代理商层层抽佣,支付机构“默许”?
  20. php不支持png图片裁剪,thinkphp5.1 图片处理类think-image的png 缩略,裁剪和添加水印透明度丢失的问题...

热门文章

  1. Oracel 修改约束命令
  2. 文件安全传输服务器,安全传输:从文件加载服务器证书
  3. variant php,Variant 是什么数据类型?
  4. 隐藏ajax的调用地址,c# – ASP.NET jQuery Ajax调用代码隐藏方法
  5. java如何把查到的对象集合放入 展示对象list中_Java面试整理-基础篇8.集合1
  6. xamarin textview 滚动_Apple Music有原生滚动歌词了!喜大普奔!
  7. flink sql udf jar包_FlinkSQL 动态加载 UDF 实现思路
  8. kaldi语音识别实战pdf_语音识别相关工具和资料分享
  9. 双目立体视觉建立深度图_双目立体视觉测量系统应用
  10. 学习速率 learning rate