springMvc中前台ajax传json数据后台controller接受对象为null

前端写ajax请求的时候,经常都是复制已经写好的ajax,改一下url和data,success函数这些,但是有时候需要传文件到后台,有时候需要传复杂的对象,如果不了解ajax的设置参数,后台经常映射不出参数
下面总结一下影响接收参数最大的2个设置

  1. contentType
    contentType默认为application/x-www-form-urlencoded(表单)类型,它告诉后台将要传递的数据是什么格式。它的默认值可以支持很多种情况,get请求可以用它,post请求也可以用它,它既可以自动把请求data拼接在url里,也可以自动转换简单的json对象(没有包含其他json对象即为简单对象,当json对象里包含其他json对象时,使用request.getParameter()获取这个内置对象会失败,其他普通属性可以获取)前提是data的格式符合json要求。
    还有人喜欢用contentType:“application/json”,选择这种情况意味着你放弃了它的默认值,此时必须使用满足json格式的字符串形式传值,适合在传递不含文件的复杂对象时使用。记得后台使用@RequestBody注解,该注解会提取你传过来的json字符串并绑定到对象中

  2. processData
    processData默认为true,一般情况可以不用管他,该参数为true的时候,将序列化你传给后台的data,当你需要传文件给后台时,可以把它设为false,当你用js的表单对象传值时,也需要设置为false,否则后台找不到你传递的文件或对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值