如何通过jquery ajax从表单中将对象发布到控制器? 我有对象用户:
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
我有控制器:
@RequestMapping(value = "/user", method = RequestMethod.POST)
public void createUser(@RequestBody User user) {
System.out.println(user.getName());
}
我通过jquery生成表单:
function createForm() {
$("body").append($('<form id="form1" method="POST"></form>'));
$("form").append('<input type="text" id="name">');
$("form").append('<input type="text" id="age">');
$("form").append('<input type="button" onclick="formSubmit();" value="Ok">');}
我尝试通过ajax将数据传输到我的控制器:
function formSubmit() {
$.ajax({
type : "POST",
url : 'rest/user',
contentType : 'application/json',
dataType : 'json',
data : $('#form1').serialize(),
success : function(data) {
doAjax();
}
});
}
方法doAjax只生成db的结果。
但它不起作用!
答案 0 :(得分:0)
原因是您已将dataType
设置为json
,但由于您使用data
,$('#form1').serialize()
为纯字符串。
要获取数据,您需要删除dataType
方法中的ajax
。
function formSubmit() {
$.ajax({
type : "POST",
url : 'rest/user',
contentType : 'application/json',
//dataType : 'json',
data : $('#form1').serialize(),
success : function(data) {
doAjax();
}
});
}