function requesFail(xhr){
var status = xhr.status;
if (status) {
showNotify("error", "网络错误", "发生网络错误,错误码为:" + xhr.status);
} else {
showNotify("error", "网络错误", "未知网络错误, 请确保设备处在联网状态");
}
}
function requestOk(data,errMsg,callbackOk,callbackError){
if(data==undefined){
showNotify('info','提示','无法从服务器获取详细数据,请联系管理员')
}else if(data.code==1){
callbackOk(data);
}else{
callbackError(data,errMsg);
}
}
*请求成功,返回data:{code:0,data:xx},此处认为code=0,为成功,调用成功后执行
callbackOk
callbackOk 是该请求成功后要进行的操作
code!=0即为出错,执行出错方法:
callbackError
$('#toPost').click(function(){
console.log('Post');
$.ajax({
type:"Post",
url:postUrl,
data:{
account:'cd',
password:'121212'
},
dataType:'json',
success:function(data){
requestOk(data,'',function(){
console.log(data);
},customCodeError);
},
error:function(xhr,state,errorThrown){
requesFail(xhr);
}
});
});
customCodeError 为code!=0 要执行的函数:
function customCodeError(data,errMsg){
let message=errMsg==''?'错误':errMsg+'发生错误';
message = message + ",错误码为:" + data.code;
console.log(message);
showNotify("info", "错误", msg);
}
若code!=0 ,没有特殊的code=n,需要做特别处理,则调用customCodeError,若有特殊处理,则根据特殊情况,自行封装。
如:
function postCodeError(data,errMsg){
let code=data.code;
if(code==1001){
showNotify("info", "错误", "不合法用户,错误码:"+code);
}else{
showNotify("info", "错误", "用户不存在,错误码:"+code);
}
}
showNotify(),借助pnotify插件的一种显示错误消息的面板。可根据自己的需求进行封装。应用时需导入文件
/* notify 配置* 使用
showNotify("info", "提示", "这是提示语句");
showNotify("success", "成功啦", "这是成功语句");
showNotify("error", "失败", "这是失败语句");
*****************************************************************/
function showNotify(type, title, text) {
var icons;
if (type == "success") {
icons = "fa fa-check-circle";
}
if (type == "error") {
icons = "fa fa-exclamation-triangle";
}
if (type == "info") {
icons = "fa fa-exclamation-circle";
}
var notice = new PNotify({
title: title,
text: text,
type: type,
delay: 2000,
icon: icons,
addclass: "notifyOnly",
styling: "fontawesome",
buttons: {
closer: true,
sticker: true
}
});
notice.get().click(function() {
notice.remove();
});
}