我正在学习react / redux,并决定采用旧的JQuery UI,该UI向Spring REST API发出请求并在React中重写它。我正在使用Axios发出请求。在我的旧Query UI中,提交表单后,我将执行以下操作。
var formInputs = $(form).serialize();
$.post("/addAttrItem", formInputs, function(updated){
refresh();
showRecord(updated);
displayControlMsg("Record below was added successfully");
}
这由下面的Spring下面的代码处理
@ResponseBody
@RequestMapping(value="/someURL", method=RequestMethod.POST)
public AttrItem restfulAdd(AttrItem item) throws Exception
{
item.setLastUpdate(new java.util.Date());
itemService.create(item);
return item;
}
通过JQuery发送请求时,AttrItem项目参数填充有JQuery发送的所有正确值
但是,当我尝试以下axios时
axios.post(someUrl, data).then
(res => {
dispatch(addAttributeSync(res));
}).catch(error =>{
alert('add item failed ' + error);
}
AttrItem项目参数本身不是null,但为空,没有任何字段设置为来自表单的值。我确认该数据对象在发布请求之前包含正确的数据。
看看是否使用item
注释将HTTP请求主体映射到方法参数@RequestBody
有帮助。
@ResponseBody
@RequestMapping(value="/someURL", method=RequestMethod.POST)
public AttrItem restfulAdd(@RequestBody AttrItem item) throws Exception
{
item.setLastUpdate(new java.util.Date());
itemService.create(item);
return item;
}