Ajax数据请求防错完整机制
- 这类情况不需要处理
{
returnCode: "0",// 字符串
errorMessage: "例如参数错误",// 错误信息
// 常规数据
data:{
a: 1,
b: 2,
c: [1, 2, 3],
d: {
e: 123
}
}
}
- 需要进行无数据渲染(考虑无数据图片进行填充)
{
returnCode: "0",// 字符串
errorMessage: "参数错误",// 错误信息
// 常规数据
data: null//确定是 null // null || [] || {} || undefined ?
}
- 需要进行无数据渲染(考虑无数据图片进行填充)
{
returnCode: "0",// 字符串
errorMessage: "参数错误",// 错误信息
// 常规数据
data:{
a:1,
b:2,
c:[] || null || undefined
}
}
总结上述要点:先判断返回码,返回码returnCode:"0"正常,再判断data是不是一个有内容的对象,最后在data有内容的情况下是否有需要的字段(字段不一这个需要特殊处理)
普通请求失败返回给我一个对象体,我输出错误码,根据returnCode
{
data: null
errorMessage: "Invalid bound statement (not found)"
returnCode: "E99999" // 直接爆出这个代码
}
返回了一个字符串,这个直接弹出字符
系统出现异常,请联系管理员!
总结上述错误要点: 如果是一个不为空的对象(建议用try-catch包裹)并弹窗处错误信息
.fail(function(response) {
var message = "错误 ";
try {
message += response.responseJSON.returnCode + " " + response.responseJSON.errorMessage;
notie.alert({text: message, time: 5});
} catch(e) {
message += response.responseText;
notie.alert({text: message, time: 5});
}
});