第一次用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');//在調用完成之后,不管成功或者失敗?;謴吞峤话粹o
// 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錯誤。
新聞熱點
疑難解答