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} 
     }); 
+0

我得到未捕获的语法错误:我已经编辑了答案意外令牌+ – sree

+0

可以请你现在就来试试。 – NightsWatch