jqueryajax错误函数

我有一个ajax调用,将数据传递到一个页面,然后该页面返回一个值

我已从页面检索到成功的调用,但我已对其进行了编码,以便它在asp中引发错误。如何从jquery中检索该错误

例如:

缓存:false,
url:“addInterview\u Code.asp”,
类型:“POST”,
数据类型:“文本”,
数据:strData,
成功:函数(html){
警报(’successful:’+html);
$(“#结果”).html(“成功”);
},
错误:函数(错误){
**警报(’error;’+eval(error))**
}

这是我不明白的错误。在函数中,我需要输入什么参数,以便使用我在服务器中发出的错误消息

Ajaxerror函数中所需的参数是jqXHR,exception,您可以像下面那样使用它:

$.ajax({
url:'some_unknown_page.html',
成功:功能(响应){
$('#post').html(response.responseText);
},
错误:函数(jqXHR,异常){
var msg='';
if(jqXHR.status==0){
msg='未连接。\n验证网络';
}else if(jqXHR.status==404){
msg='未找到请求的页面。[404]';
}else if(jqXHR.status==500){
msg='内部服务器错误[500]。';
}else if(异常==='parserrror'){
msg='请求的JSON解析失败';
}else if(异常==='timeout'){
msg='超时错误';
}否则如果(异常==='abort'){
msg='Ajax请求已中止';
}否则{
msg='未捕获错误。\n'+jqXHR.responseText;
}
$('#post').html(msg);
},
});

演示小提琴


参数

jqXHR:

它实际上是一个错误对象,如下所示

您也可以在自己的浏览器控制台中查看此信息,方法是使用console.log中的error函数,如:

错误:函数(jqXHR,异常){
console.log(jqXHR);
//您的错误处理逻辑在此。。
}

我们使用这个对象的status属性来获取错误代码,比如如果我们获取status=404,这意味着无法找到请求的页面。它根本不存在。基于该状态码,我们可以将用户重定向到登录页面或任何我们的业务逻辑要求的页面

例外情况:

这是显示异常类型的字符串变量。所以,如果我们得到404错误,异常文本将是简单的“错误”。类似地,我们可能会得到’timeout’,’abort’作为其他异常文本


弃用通知:从jQuery 1.8开始,已弃用jqXHR.success()jqXHR.error()jqXHR.complete()回调。准备
要最终删除它们,请使用jqXHR.done()jqXHR.fail()
jqXHR.always()

因此,如果您使用的是jQuery 1.8或更高版本,我们需要更新成功和错误函数逻辑,如:-

//发出请求后立即分配处理程序,
//记住这个请求的jqXHR对象
var jqxhr=$.ajax(“some_unknown_page.html”)
.完成(功能(响应){
//这里的成功逻辑
$('#post').html(response.responseText);
})
.fail(函数(jqXHR,异常){
//我们的错误逻辑在这里
var msg='';
if(jqXHR.status==0){
msg='未连接。\n验证网络';
}else if(jqXHR.status==404){
msg='未找到请求的页面。[404]';
}else if(jqXHR.status==500){
msg='内部服务器错误[500]。';
}else if(异常==='parserrror'){
msg='请求的JSON解析失败';
}else if(异常==='timeout'){
msg='超时错误';
}否则如果(异常==='abort'){
msg='Ajax请求已中止';
}否则{
msg='未捕获错误。\n'+jqXHR.responseText;
}
$('#post').html(msg);
})
.always(函数(){
警报(“完成”);
});

希望有帮助

发表评论