如何使用$.ajax()返回的deferred对象

1.5版本后的jquery使用$.ajax()返回的是deferred对象
大家都知道deferred对象是jquery给出的回调函数的解决方案
ajax请求可以写成以下形式
JavaScript$.ajax('target.html')
.done(function(){})
.fail(function(){});
非常简单明了
但现在情况是返回数据中有一字段规定请求失败与否(不是通信问题的错误)
一般jquery的ajax的使用如下(当然是我比较晚知道这个deferred这个对象,可能大家老早就不这样写了)
javascript$.ajax({
url:target.html,
success:function(){},
error:function(){}
});
改写如下
JavaScriptvarIO={};
IO.prototype.ajaxGet=function(url,params,cb,error){
$.ajax({
url:url,
type:'get',
data:params,
success:function(data){
data=$.parseJSON(data);
if(data.state!=10000){
error&&error(data);
returnfalse;
}
cb&&cb(data);
},
error:function(XMLHttpRequest,textStatus,errorThrown){
//这里是出现请求失败等问题的处理
}
});
}
因为与后台约定好当返回state字段值不为10000则算是错误情况
需要到error函数中执行
但是在success与error中要如何获取deferred对象来进行改写
使之可以像本题最上面的写法使用
JavaScriptIO.ajaxGet('target.html',data)
.done(function(data){})
.fail(function(data){});
尚方宝剑之说
浏览 259回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript