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){});
添加回答
举报
0/150
提交
取消