我正在尝试使用Ajax检查/取消选中检查点,但是它会返回400个错误请求。
任何人都可以帮忙!
在控制器中:
@RequestMapping("/jsp/check.html")
@ResponseBody
public ResponseEntity<String> check(@RequestParam Long id){
String u=SecurityUtils.getUsername();
User user=userDao.getUser(u).get(0);
user.getId();
Checkpoint cp = userDao.getCheckpoint(id);
user.getCheckpoints().add(cp);
userDao.saveUser(user);
return new ResponseEntity<String>( HttpStatus.OK );
}
@RequestMapping("/jsp/uncheck.html")
@ResponseStatus(HttpStatus.OK)
public void uncheck(@RequestParam Long id){
User user = userDao.getUser(id);
Checkpoint cp = userDao.getCheckpoint(id);
user.getCheckpoints().remove(cp);
userDao.saveUser(user);
}
在使用jQuery调用Ajax的display.jsp中,检查并取消选中此代码:
$(function(){
$("#cp").change(function(){
var checked = $(this).is(':checked');
if(checked){
$.ajax({
type: 'POST',
url: 'check.html',
data: { "id": checked},
success: function(data){
}
});
}
else
{ uncheck();}
});
});
function uncheck( id )
{
$.ajax({
type: 'POST',
url: 'uncheck.html',
data: { "id": id},
cache: false,
success: function(data){
}
});
}
答案 0 :(得分:0)
我建议使用@ModelAttribute
代替@RequestParam
。
public ResponseEntity<String> check(@ModelAttribute("id") Long id, HttpSession session){
//
}
同样适用于uncheck
方法。