$.get(url, function(data) {
if (data == "success") { // 直接比較字符串
alert("刪除成功!");
location.reload();
}
});
後端 out.write("success") 但前端判斷失效,或報錯不進入回調。
$.get 只有 HTTP 200 才觸發 success 回調。後端拋異常導致 500 時,需用 .fail() 捕獲。"success\n" 或 " success" 導致 == 失敗。建議 data.trim() == "success" 或後端返回 JSON {code: 0, msg: "success"}。response.setCharacterEncoding("UTF-8"),前端 $.ajax({dataType: "text"}) 顯式指定。console.log("原始返回:", JSON.stringify(data)) 確認真實內容。// 後端
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write("{\"code\":0,\"msg\":\"刪除成功\"}");
// 前端
$.get(url, function(res) {
if (res.code === 0) {
alert(res.msg);
location.reload();
} else {
alert("失敗:" + res.msg);
}
}, "json").fail(function(xhr) {
alert("請求異常:" + xhr.status);
});
不要裸傳字符串,定義統一的 {code, msg, data} 協議,前端指定 dataType: "json",後端設置正確 Content-Type,即可避開 90% 的交互坑。