ajax json未将值传递给弹簧控制器
问题描述:
我正在使用ajax向控制器发送Json对象。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错误的请求。
Error: "HTTP Status 400 - Required String parameter 'json' is not present"
任何输入? 谢谢,提前
答
服务器端想要字符串参数但客户端发送到对象。 JSON.stringfy将用于将对象转换为字符串。要绑定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){
}
答
你没有通过参数json,你可以尝试下面;
$.ajax({
url: "/cart/add.json",
type: "POST",
data:{ 'json=':event.data}
});
我得到未捕获的语法错误:我已经编辑了答案意外令牌+ – sree
可以请你现在就来试试。 – NightsWatch