jq ajax请求失败、返回code!=0 统一处理方法

本文介绍了一种处理网络请求的方法,包括请求失败时的错误通知显示及请求成功的数据处理流程。通过具体示例展示了如何使用回调函数进行错误码判断,并针对不同错误码给出相应的用户反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求失败处理
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插件的一种显示错误消息的面板。可根据自己的需求进行封装。应用时需导入文件

<link href="static/css/pnotify.css" rel="stylesheet"/>

<script src="static/js/common/pnotify.js"></script>

/*   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();
  });
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值