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






在使用jQuery的ajax方法进行请求时,可以使用success和error来表示请求的成功和失败。当请求成功时,可以在success中执行相应的操作,而当请求失败时,可以在error处理错误情况。这样可以根据请求的结果来决定接下来的处理步骤。同时,jQuery还提供了其他一些方法处理ajax请求的不同阶段,比如.ajaxComplete()表示请求完成时,.ajaxError()表示请求失败时,ajaxSend()表示在Ajax请求发送时附加一个函数执行等等。在使用这些方法时,可以根据具体需求选择合适的方法处理不同的情况。 另外,对于请求成功的情况,可以通过返回的数据来判断是否成功。在返回的数据中,可以定义一个code字段来表示请求的状态,一般认为code=0表示成功。当请求成功并且code=0时,可以执行相应的回调函数来处理成功后的操作。因此,在处理ajax请求时,可以通过success来判断请求是否成功,通过error处理请求失败的情况,并可以根据返回的数据中的code字段来判断请求的具体状态。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jquery ajax方法请求成功和请求失败用法](https://blog.csdn.net/gzxiaomei/article/details/106080190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [jquery的ajax请求全面了解](https://download.csdn.net/download/weixin_38731123/14809110)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [jq ajax请求失败返回code!=0 统一处理方法](https://blog.csdn.net/qq_36111804/article/details/80535531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值