2

我参考了 Spring Jquery Ajax Post 上 @ 400 Bad request 的帖子

但是即使我按照之前帖子中提供的建议,我仍然收到 400 错误请求。谁能让我知道我哪里出错了。

控制器:

  @RequestMapping(value = "validateLine.htm", method = RequestMethod.POST)
@ResponseBody
public JSONResponse checkForExceptions(HttpSession session,@RequestBody  OrderLine[] lineData) { 

    // do something
}

和 AJAX 调用

$.ajax({
    type : "POST",
    url : "/order/validateLine.htm",
    data : aData,
    dataType : 'json',
    contentType: 'application/json',
    success: function(response){  
            // do Something
            }
    });

从 FireBug 发送到服务器的数据

[{"lineId":"2","itemDesctiption":"Item Desc 2","bundleDescription":"Bundle Desc 2"},{"lineId":"2","itemDesctiption":"Item Desc 2","bundleDescription":"Bundle Desc 2"}]

如果我说 @RequestBody ArrayList <OrderLine> lineData 我将数据作为 LinkedHashMap 并引发异常。

4

2 回答 2

1

您需要确保它返回正确的内容类型:

headers.add("Content-Type", "application/json; charset=utf-8");

此外,在那里,应该只接受正确的内容类型:

@RequestMapping(headers = "Accept=application/json")
于 2013-01-17T06:46:59.230 回答
1

花了一天时间后,我终于弄清楚了这个问题。它是一个错字:(我从javascript发送lineId,但它是我的Object类,它是lineID(大写D)。

谢谢大家的时间。欣赏它。

于 2013-01-17T20:32:18.383 回答