踩坑經過
最近初學Ajax,當我想把Ajax應用到自己項目中的時候,沒有達到理想的效果,還報了如下錯誤:
點擊圖中報錯,產生報錯頁面如下:
當時寫的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("修改失敗"); }
}
});
});
上面寫的內容也很簡單,就是用jQuery中Ajax的post方法去提交修改密碼的表單。按照語法來說,我寫的語法並沒有問題。在查了jQuery的api文檔后,我怕決定改用向后台發送請求通用的$.ajax代替$.post,然后增加type屬性,type="post"。然后問題就解決了。
解決辦法:
1、用$.ajax代替$.post,增加type屬性,type="post"
上面的代碼,修改過后如下:
// 提交修改密碼表單
$("#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("修改失敗"); }
}
});
});