【问题标题】:ajax json not passing values to spring controllerajax json没有将值传递给spring控制器
【发布时间】:2015-10-13 10:21:39
【问题描述】:

我正在使用 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' 不是 现在”

任何输入? 谢谢,提前

【问题讨论】:

    标签: jquery json ajax spring spring-mvc


    【解决方案1】:

    服务器端想要字符串参数,但客户端发送到对象。 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){ 
        }
    

    【讨论】:

      【解决方案2】:

      你没有传参数json,你可以试试下面的;

      $.ajax({
                  url:  "/cart/add.json",
                  type: "POST",
                  data:{ 'json=':event.data}
              });
      

      【讨论】:

      • 我收到 Uncaught SyntaxError: Unexpected token +
      猜你喜欢
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多