笔者今天出于好奇,测试了一下服务端接收jQuery中的$.post请求方法传递的参数,发现了一个奇怪的问题,在这里记录一下,当然也希望有大佬能帮忙解答下。
问题:
接口使用@RequestBody注解和@RequestParam注解都可以接收到$.post请求方法传递的参数。前者是以json的形式传递的,后者是根据参数名直接读取参数的值。比如下面一段代码:
$.post("/test", {'id': '123456'}, function(data, status){
.....
});
使用@RequestBody注解接收到的是一串字符串:"{‘id’: ‘123456’}",而使用@RequestParam注解接收到的是123456。那就有个问题了,按笔者的理解@RequestParam注解接收的都是以&隔开的参数,而无法接收一个对象。但是现在确接收到了那个数据,这是因为什么呢?难道是因为它介于对象和单个参数之间么?jQuery又是默认以什么格式上传的这个参数数据呢?
笔者刚刚找到答案了: