我正在尝试用我的春季mvc应用ajax,但无法找到我犯错误的地方。我尝试按照几个教程,但无法定制我的工作。它总是落到错误状态。
所以这是我的ajax电话
function doAjax() {
var username = $('#username').val();
var email = $('#email').val();
var password = $('#password').val();
var json = {
"username" : useranme,
"email" : email,
"password" : password
}
//alert("username: " + username + " email: " + email + " password: " + password);
$.ajax({
type: "POST",
url: $('form').attr('action'),
data: JSON.stringify(json),
dataType: "JSON",
success: function(data) {
},
error:function(data, status, err) {
alert("error");
}
});
};
这是我的表格:
<div class="form">
<spring:url var="registerUrl" value="http://localhost:9004/Project/register" htmlEscape="true" />
<form method="post" action="${registerUrl}">
<div class="form_field">
<label for="username">Username</label><br/>
<input class="field" id="username" type="text" name="userName" autocomplete="off"/>
</div>
<div class="form_field">
<label for="email">Email</label><br/>
<input class="field" id="email" type="email" name="email" autocomplete="off" />
</div>
<div class="form_field">
<label for="password">Password</label><br/>
<input class="field" id="password" type="password" name="password" />
</div>
<div class="form_field prefix_clear">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<input id="submit" class="action_button" type="submit" value="Register"/>
</div>
</form>
<a href="#" id="button12" onClick="doAjax()" class="action_button">Click me</a>
</div>
因此,如果我使用输入提交表单,它将完美运行。但是当我尝试使用锚标记提交它时,它不起作用。请帮忙。
答案 0 :(得分:0)
要使ajax调用与表单提交完全一致,您应该将数据:JSON.stringify 替换为
,而不是使用JSON。data:$("form").serialize();
如果你必须使用JSON数据发出请求,那么你必须使用映射方法和命令对象来编辑你的问题以获得帮助,但是你的代码显然有一个问题,那就是你是不包括ajax请求中的 _csrf 参数