使用Ajax发送请求,而请求参数是一个数组,请求了多次都报400的错误,最后终于找到了解决办法!
Ajax请求
var sealList=['1','2','3'];
$.ajax({
type: "post",
url: "${viayieContextPath}/seal/carcelSeal",
dataType: "json",
contentType:"application/json",
data:JSON.stringify(sealList),
success: function(obj){
alert(obj.description);
},
error: function(obj){
alert("操作出错");
return false;
}
});
controller控制层
@Controller
@RequestMapping("/seal")
public class SealController {
@Autowired
private SealService sealService ;
/**
* 取消盖印
* @param sealList
* @return
*/
@RequestMapping("/carcelSeal")
@ResponseBody
public JResult carcelSeal(@RequestBody List<String> sealList) {
return sealService.carcelSeal(sealList);
}
}
总结一下,解决该问题需注意一下两点:
1.Ajax请求参数类型需转json格式传送: contentType:"application/json", data:JSON.stringify(sealList),
2.controller控制层请求的调用的方法需在方法上添加 @ResponseBody(表示是Ajax请求),并且接收的参数前也需添加@ResponseBody注解。