在javaweb中的jquery ajax中的traditional

原创 2016年06月01日 09:44:28

在web项目中,经常遇到ajax提交表单,这时候会遇到那种一个参数有多个值的情况,比如checkbook,那么后台如何接收呢?

我所知道的有两种方式:

方式1:值之间用个符号分割

$.ajax{  

url:"url",  

data:{ param1: "1,2,3"}

}

这种方式在我看来没啥大问题,但是前提是在参数值中不能出现分割符号所使用的字符,否则后台split的时候获取到的值就不对,那么为了避免这个问题,就有了方式2


方式2:

将参数的值以数组的方式传到后台,后台用数组去取

$.ajax{  

url:"url",  

data:{ param1: [1,2,3]}

}

这样看起来是没问题,但在jquery的ajax中其实是有问题的,因为后台接受不到这个参数,那么问题出在哪呢?我们可以f12看看传到后台的到底是个什么鬼,为何接受不到呢?

于是f12一下,我秒懂了

原来jquery的ajax把参数弄成了这个样子,这不科学啊,为什么会这样呢?

于是去看了jquery的文档

原来发送ajax请求之前,jquery会调用$.param()l来深度递归一个对象来满足现在脚本语言和框架,比如PHP, Ruby on Rails等。那么如何解决呢?我们可以通过traditional 为true来阻止其深度序列化。

$.ajax{  

url:"url",  

traditional:true,

data:{ param1: [1,2,3]}

f12一下,参数格式变成了这种,嗯,是我们想要的结果

}

这样的话就解决问题了

JavaWeb项目jquery ajax跨域请求node.js渲染highcharts

$(function () { $.ajax({ url : 'http://192.168.1.58:3000/china?datatime='+new Date().getTime...

javaWeb与Jquery ajax长轮询简单实现

javaWeb项目中需要一个实时提醒的功能,也就是某人做了某一操作,可以立即提醒到当前在线的用户 最开始想在用户做了操作后,储存一个状态到数据库中然后用每隔几秒用ajax去请求后台查询数据库来确定是否...

JavaWeb中Ajax的使用

  • 2016年11月22日 17:32
  • 14KB
  • 下载

JavaWeb开发中form、ajax提交数据Model转化

JavaWeb开发中form、ajax提交数据Model转化问题最近学习MongoDB数据库,作为java开发的我,当然需要做个小的web程序来测试一番了。在html中我采取ajax提交方式,因为我要...

javaweb项目ajax的跨域访问问题

在做项目中遇到了ajax的跨域访问,寻求了好多时间,在不懈努力之下终于发现了解决办法,与一般的不同的是,我是在服务器端利用拦截器进行控制,即在每一次的请求中拦截器强制的加入Access-Control...

Ajax JavaWeb 工程实例

  • 2007年04月04日 16:13
  • 32KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在javaweb中的jquery ajax中的traditional
举报原因:
原因补充:

(最多只允许输入30个字)