[英]Error posting json parameter to REST service
我正在嘗試將對象發布到使用Spring MVC實現的RESTful服務中,但是它不起作用。
在我的測試頁中,我有:
var obj = { tobj: {id: 1, desc: 'yesh'}};
$.ajax({
url : 'http://localhost:8180/CanvassService/canvass/test',
type : 'POST',
data : JSON.stringify(obj),
contentType : 'application/json; charset=utf-8',
dataType : 'json',
async : false,
success : function(msg) {
alert(msg);
}
});
我正在使用json2.js來對我的對象進行字符串化。
在我的控制器中,我有:
@RequestMapping(value="/canvass/test", method = RequestMethod.POST)
public void createTest(@RequestParam TestObj tobj)
throws ServiceOperationException {
// test method
int i = 0;
System.out.println(i);
}
我的實體類是:
public class TestObj {
private int id;
private String desc;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
當我將對象發布到控制器時,出現HTTP 400錯誤:
HTTP狀態400-所需的TestObj參數'tobj'不存在
我做錯了什么? 似乎我發送的參數/對象的格式不正確,但是我不明白為什么...
您正在使用JSON數據進行POST,而在您的控制器中嘗試將其解釋為參數(即?tobj=someValue
)。
嘗試使用以下方法:
@RequestMapping(value="/canvass/test", method = RequestMethod.POST)
public void createTest(@RequestBody TestObj tobj)
throws ServiceOperationException {
// test method
int i = 0;
System.out.println(i);
}
此外,您不必嵌套JSON數據:
所以{id: 1, desc: 'yesh'}
而不是{ tobj: {id: 1, desc: 'yesh'}}
在水下使用Jackons時,這應該起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.