cause
以下为前端AJAX代码,用于删除后台用户数据。
$.ajax({
method: "POST",
url: "/DeleteUser",
data: {
id: row.id
},
success: function(data, textStatus, jqXHR) {
console.log("删除成功");
console.log("data", JSON.stringify(data));
console.log("textStatus", textStatus);
console.log("jqXHR", jqXHR);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("删除失败");
console.log("jqXHR", jqXHR);
console.log("textStatus", textStatus);
console.log("errorThrown", errorThrown);
},
dataType: "json"
});
后端代码略。
但,数据库数据删除成功,前端却执行error
方法。
原因:response
中没有返回JSON数据。
HTTP请求的的状态码是200 OK
,但响应没有数据(Content-Length: 0
)。
没有JSON所以解析JSON出错,执行error
回调。
resolve
在服务端代码中向响应添加数据即可。
response.setContenType("text/json; charset=UTF-8"); // 设置响应的内容类型和字符集
PrintWriter writer = response.getWriter(); // 必须先设置响应的内容类型和字符集之后,再获取响应对象writer。
response.write(JSON.toJSONString(object)); // object为写回的数据。用fastjson转换为JSON字符串。
writer.close();
至于不同情况下写回的数据是什么,由自己决定。
控制台日志:
HTTP请求和响应
响应数据预览