以下是我提交ajax请求的方式:
$.ajax({
url: "myurl",
type: 'POST',
dataType : "text",
data : ({
json : myjson
}),
success : function(data) {
if(data == 'success'){
//alert('success');
}
else {
alert('fail');
}
};
}
});
在java中我只返回包含'success'或'fail'的字符串,具体取决于是否抛出异常:
伪代码:
try {
return "success";
}
catch (Exception e){
return "fail";
}
这是否足以代替使用ajax错误回调?如果不够,应如何使用此回调以及检查哪些额外的故障条件?
error : function() {
alert ('error');
}
答案 0 :(得分:3)
error
回调的目的是不同的:如果在发送请求或接收响应期间发生错误,jQuery将调用该函数。例如,如果您的服务器没有返回答案,而是“500 Internal Server Error”(或任何其他错误),则根本不会调用success
回调函数。如果您定义error
回调,那么它将被调用 - 您将有机会弄清楚错误是什么。
仅仅因为您的服务器完美运行并不意味着不会发生通信错误:例如,它可能是“网关超时”,“无主机路由”等。
最后,如果你声明dataType: json
(我知道它不适用于你的例子)但是无法解析返回的数据(即它不是格式良好的JSON字符串),你的error
函数将被调用,而不是success
函数。