踩坑經(jīng)過(guò)
最近初學(xué)Ajax,當(dāng)我想把Ajax應(yīng)用到自己項(xiàng)目中的時(shí)候,沒有達(dá)到理想的效果,還報(bào)了如下錯(cuò)誤:

image
點(diǎn)擊圖中報(bào)錯(cuò),產(chǎn)生報(bào)錯(cuò)頁(yè)面如下:

image
當(dāng)時(shí)寫的Ajax如下:
// 提交修改密碼表單
$("#changePasseword").click(function(){
$.post({
url: "${pageContext.request.contextPath }/ChangePasswordServlet",
data:$("#changePasswordForm").serialize(),
success:function(data){
if(data=="修改成功"){
alert("修改成功");
$("#mainFrame").load("login.jsp");
}else if(data=="用戶未登錄"){
alert("用戶未登錄");
$("#mainFrame").load("login.jsp");
}else{ alert("修改失敗"); }
}
});
});
上面寫的內(nèi)容也很簡(jiǎn)單,就是用jQuery中Ajax的post方法去提交修改密碼的表單。按照語(yǔ)法來(lái)說(shuō),我寫的語(yǔ)法并沒有問(wèn)題。在查了jQuery的api文檔后,我怕決定改用向后臺(tái)發(fā)送請(qǐng)求通用的$.ajax代替$.post,然后增加type屬性,type="post"。然后問(wèn)題就解決了。
解決辦法:
1、用$.ajax代替$.post,增加type屬性,type="post"
上面的代碼,修改過(guò)后如下:
// 提交修改密碼表單
$("#changePasseword").click(function(){
$.ajax({
type: "post",
url: "${pageContext.request.contextPath }/ChangePasswordServlet",
data:$("#changePasswordForm").serialize(),
success:function(data){
if(data=="修改成功"){
alert("修改成功");
$("#mainFrame").load("login.jsp");
}else if(data=="用戶未登錄"){
alert("用戶未登錄");
$("#mainFrame").load("login.jsp");
}else{ alert("修改失敗"); }
}
});
});