ajax post 服务器用request.getParameter("")拿不到值

问题现场

ajax:
这里写图片描述

controller:
这里写图片描述

console:

start=null,end=null

解决办法

  1. 使用application/json,后端SringMVC方法加上@RequestBody注解

  2. 使用默认的application/x-www-form-urlencoded,参数会被序列化为“…=…&…=…”的格式

原因

  • Jquery官方对contentType 的解释
    contentType(默认值:‘application / x-www-form-urlencoded; charset = UTF-8’)
    类型:Boolean或String
    将数据发送到服务器时,请使用contentType 。 默认为“application / x-www-form-urlencoded; charset = UTF-8”,这在大多数情况下都适用。 如果您明确地将contentType 传递给$ .ajax(),那么它总是被发送到服务器(即使没有数据发送)。
    从jQuery 1.6开始,你可以传递false来告诉jQuery不要设置任何内容类型标题。
    注意:W3C XMLHttpRequest规范规定字符集始终为UTF-8; 指定另一个字符集不会强制浏览器更改编码。
    注意:对于跨域请求,将内容类型设置为application / x-www-form-urlencoded,multipart / form-data或text / plain以外的任何内容将触发浏览器向服务器发送预检OPTIONS请求。

  • contentType
    使用application/json 时,被传送的数据必须被json序列化,即JSON.stringify(data),此时controller应使用@RequestBody来获取被序列化的参数
    使用application/x-www-form-urlencoded时,被传送的数据会被序列化为“…=…&…=…”形式,此时controller不需要任何注解,SringMVC默认支持这种获取数据的方式

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值