The request sent by the client was syntactically incorrect in spring mvc, ajax
下面是对我的控制器的 ajax 调用
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$(‘#submitButton’).on(‘click’, function() {
var expenseDetailsListVO = {}; expenseDetailsListVO = getData(); console.log(expenseDetailsListVO); var data = JSON.stringify(expenseDetailsListVO); console.log(data); $.ajax({ url :“${pageContext.request.contextPath}/saveExpenses”, data : data, method : ‘POST’, contentType :“application/json”, success : function(data) { }, } |
这是我的控制器
1
2 3 4 5 6 7 8 9 10 11 12 |
@RequestMapping (value =“/saveExpenses”, method=RequestMethod.POST)
public String saveExpenses (@RequestBody(required=false) ExpenseDetailsListVO expenseDetailsListVO, Model model) {
//System.out.println(“User Id is……..”+userId); //expenseServiceManagement.addExpense(expenseDetailsList); return“addExpense”; |
下面是我的java类
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
public class ExpenseDetailsListVO {
private List<ExpenseDetailsVO> expenseDetailsVOs = LazyList.decorate( public ExpenseDetailsListVO (){} public List<ExpenseDetailsVO> getExpenseDetailsVOs() { public void setExpenseDetailsVOs(List<ExpenseDetailsVO> expenseDetailsVOs) { @Override } public class ExpenseDetailsVO { /*private int expenseId;*/ private String itemDescription; private double amount; private Date expenseDate; public ExpenseDetailsVO (){} public void setExpenseId(int expenseId) { public String getItemDescription() { public void setItemDescription(String itemDescription) { public double getAmount() { public void setAmount(double amount) { public Date getExpenseDate() { public void setExpenseDate(Date expenseDate) { @Override } |
以前它可以工作,但我改变了一些我不记得的东西,现在在浏览器控制台中出现错误
客户端发送的请求语法错误
请各位大佬告诉我是什么问题…
- 你能包括console.log(data)的输出吗? ?
- 金额:”40″ 费用日期:”2015-04-02″ 项目描述:”abc”
- 字面上地?控制器需要该值的 JSON 列表,因此应该类似于:data : [ {amount: 40, feeDate: “2015-04-02”, itemDescription: “abc
- 我知道了谢谢!!!
- 好消息,与我的评论有关还是另一个问题?只是想知道您或我是否应该建立一个答案以供将来参考:)
- 是的,你的建议帮助了我……谢谢:)
有一个非常小的错误,因此它显示了该错误…
所以我只需要做些小改动,下面是 jquery
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$(‘#submitButton’).on(‘click’, function() {
var expenseDetailsListVO = {}; expenseDetailsListVO = getData(); console.log(expenseDetailsListVO); var data = JSON.stringify(expenseDetailsListVO); console.log(data); $.ajax({ url :“${pageContext.request.contextPath}/saveExpenses”, data : data, method : ‘POST’, contentType :“application/json”, success : function(data) { }, } |
我的控制器期待一个对象,该对象将具有对象数组,但从客户端发送数组,因此该数组需要package在我所做的对象及其工作中:)
- 如何调试此类问题。类型、名称和缺少参数可能不匹配。有没有办法轻松调试这种不一致?
来源:https://www.codenong.com/29477344/