日常开发中遇见了一个关于AJAX的坑,很简单!记一下
开发中使用@RequestBody报415的错误
我在AJAX参数里面加了一个属性:
contentType:'application/json',
dataType:"JSON",//同时将数据转化为JSON字符串 因为网络不能传输对象
data:JSON.stringify(excelDatas),
完整代码
$.ajax({
url: contextPath+'/base/test',async:false,
data:JSON.stringify(excelDatas),
contentType:'application/json',
dataType:"JSON",
type:"POST"});
后台数据使用@RequestBody接收对象
@RequestMapping("/base/test")publicvoidtest(@RequestBody ResultDatasVo<String> o){
System.out.println(o);}
大概上网查了一下,
1.网络不能传输对象,所以必须把对象转换为JSON字符串
2.使用RequestBody注解接收的数据必须有一个对应的(属性一致的)Bean对象来接收
·3.必须指定请求方式,据我所知,这玩意只能是POST请求才能访问
4.我个人认为,@RequestBody是把JSON字符串转换为对象的一个注解(我感觉,错了不负责啊)