第一次用Ajax call后端,遇到了不少问题。 所以就下面总结一下,以免后面再犯。
下面是代码部分
$(document).ready(function(){
$("#send").click(function(){
$.ajax({
url :"getAjaxInfo.action",
// timeout : 20,//当超过超时时间就会走error方法
data :JSON.stringify({
username:$("#username").val(),
content : $("#content").val(),
passWord :"kobe"
}),//如果没有JSON.stringify这个函数就会报400,这个错误。因为后端进行参数绑定的时候就会有问题
contentType: "application/json",//没有加这个回报415,类型错误
type:"POST",
dataType :"json",//期待服务器返回的数据类型
beforeSend : function(xmlHttPRequest) {//防止表单的重复提交,禁用掉提交的button
$("#send").attr({'disabled':'disabled'});
},
success : function(data,textStauts) {
console.log(data);
console.log(textStauts);
},
error : function(xmlhttpRequest,textStatus,errorThrown){
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
},
complete : function(XMLHttpRequest,textStatus) {//不管调用成功或者失败都会走
$("#send").removeAttr('disabled');//在调用完成之后,不管成功或者失败。恢复提交按钮
// console.log(XMLHttpRequest);
// console.log(textStatus);
}
})
});
@RequestMapping(value = "/getAjaxInfo", method = RequestMethod.POST)
@ResponseBody
public User getAjaxInfo(@RequestBody Useruser)throws Exception {
if(null !=user.getUsername()) {
user.setUsername("hello :" +user.getUsername());
Thread.sleep(3000);
//throw new Exception("error");
}
returnuser;
}
因为没有制定数据类型:所以回报下面的错,所以要指定contentType: "application/json"
如果给data没有用JSON.stringify().就会报400错误。
新闻热点
疑难解答