使用jquery ajax发送请求后,前台success方法一直没有调用。
经调试,返回状态码200说明请求发送成功,后台执行OK,猜测问题应该在前台解析返回值部分。
错误示例:
function validateName() {
var name = $("#nameInputId").val();
$.ajax({
type:"POST",
url:"JsonReturnClient",
data:"name",
dataType: "json",
success:callback
});
}
function callback(result,readystatus){
alert("调用成功");
}
servlet:
OutputStream out = response.getOutputStream();
request.getParameter("");
String json = "{'name':'jyf'}";
out.write(json.getBytes());
然后补充error流程,调试发现调用servlet成功后解析结果报错parsererror,经查找,前台设置dataType为json,希望后台返回的格式是json,如果格式不正确会出现该错。检查发现手写json key、value不能用单引号结束,需要用双引号转义。修改后台生成json的方法。
OutputStream out = response.getOutputStream();
request.getParameter("");
String json = "{\"name\":\"jyf\"}";
out.write(json.getBytes());
同时前台为了方便调试跟踪执行结果,需要补全error分支