背景:
昨天遇到一个坑,好几个小时都没有解决,就是ajax往后台传递数组的时候。后台取到的总是为空。后来知道是spring mvc 强制序列化了。要在ajax 代码中加一个属性用来防止序列化
ajax代码
$.ajax({
"url": "testplan/runPlanByPlanId",
"type": 'POST',
"data" :{'planId': myArray},
traditional: true,
dataType:'json',
success: function(data){
}
});
后台代码:
//planId
@RequestMapping("/runPlanByPlanId")
@ResponseBody
public ResultVO runPlanByPlanId(Long[] planId){
logger.info("TestPlanController.deleteTestPlan started!");
List<Long> list = Arrays.asList(planId);
ResultVO resultDto = new ResultVO();
resultDto.setCode(Constants.SUCCESS_STATUS_CODE);
resultDto.setMessage(Constants.DELETE_SUCCESS_MSG);
try{
if(list!=null){
String message = testPlanService.runTestPlanByPlanId(list);
resultDto.setMessage(message);
}else{
resultDto.setMessage("no checked");
}
}catch(Exception e){
logger.error(e.getMessage());
resultDto.setCode(Constants.FAILED_STATUS_CODE);
resultDto.setMessage(Constants.DELETE_FAILED_MSG);
}
logger.info("TestPlanController.deleteTestPlan end!");
return resultDto;
}