我使用ajax将Json对象发送到控制器。
$.ajax({
url: "/cart/add.json",
type: "POST",
data:{ 'json': event.data},
});
和控制器
@RequestMapping(value = "/cart/add.json", method = RequestMethod.POST)
public String addToCartJson(@RequestParam("json") final String jsonString, final Model model,
final BindingResult bindingErrors)
我收到400个错误请求。
错误:“HTTP状态400 - 必需的字符串参数'json'不是 本“
任何输入? 谢谢,提前
答案 0 :(得分:2)
服务器端想要字符串参数但客户端发送到对象。 JSON.stringfy将用于将对象转换为string。要绑定json,您需要创建一个包含所有参数的类,并使用@RequestBody注释而不是@RequestParam。
Ajax方法正在重写:
$.ajax({
url: "/cart/add.json",
type: "POST",
processData: false,
data: JSON.stringify({
"json": event.data
}),
控制器行动部分:
@RequestMapping(value = "/cart/add", method = RequestMethod.POST)
public void addEvent(@RequestBody EventData eventData){
}
答案 1 :(得分:1)
您没有传递参数json,您可以尝试下面的内容;
$.ajax({
url: "/cart/add.json",
type: "POST",
data:{ 'json=':event.data}
});