【发布时间】:2015-09-08 11:05:02
【问题描述】:
我在使用 $http.post 在 angularjs 中传递复杂的 json 对象时遇到问题。我不断收到从服务器发回的 400 错误请求错误,说请求在语法上不正确。我相信它与数组有关,因为当我不包含它时它可以通过。
json 我通过了。
{
customer: {
firstName: "John",
lastName: "Doe",
street: "1234 South Dr",
city: "Detroit",
state: "MI",
zip: "12345",
phone: "123-321-1234",
email: "EMAIL@GMAIL.COM"
},
order: {
orderDate: "06-16-2015",
registerNum: "1",
transactionNum: "7820",
deliveryStatusID: 1,
notes: "Hold order until July",
items: [
{skuID: "1234568",
skuDescription: "Order item 1",
qty: "4",
itemStatusID: 1,
itemStatusDescription: "Backorder"
},
{skuID: "7387491",
skuDescription: "Order item 2",
qty: "1",
itemStatusID: 1,
itemStatusDescription: "Flagged"
}
]
}
}
角度服务功能
this.addOrder = function(new_order) {
return $http.post(base + "/add", new_order);
};
Spring MVC 控制器方法
@RequestMapping(value="/add", method=RequestMethod.POST)
public void addOrder(@RequestBody CustomerOrder customerOrder) {
System.out.println("----CUSTOMER-INFO----");
System.out.println(customerOrder.getCustomer().getFirstName());
System.out.println(customerOrder.getCustomer().getLastName());
System.out.println("");
System.out.println("----ORDER-INFO----");
System.out.println(customerOrder.getOrder().getOrderID());
System.out.println(customerOrder.getOrder().getOrderDate());
}
只有当我在 json 中传递 items 数组时,才会出现问题。我已经传递了没有 items 数组的相同 json 对象,它工作正常。 json 的格式以与我使用 angularjs 服务方法获取订单时返回的格式相同的格式发送,所以我真的不确定我在哪里出错了。
如果我需要提供更多代码,请告诉我。我感谢任何帮助我的努力。
谢谢。
杰森
【问题讨论】:
-
那是完整的 json 对象吗?
-
是的,我忘记在这篇文章的开头 { 和结尾 } 中复制,我会编辑它
-
尝试将您的密钥也放入
""。当我这样做时,还包括打开和关闭{ }它在 jasonlint.com 上验证得很好 -
用 " " 中的键试了一下,还是报同样的错误。
-
确切的错误信息是什么?相对于文件结构,您将 json 对象存储在哪里?
标签: java json angularjs spring-mvc