1.5版本后的jquery使用$.ajax()返回的是deferred對(duì)象大家都知道deferred對(duì)象是jquery給出的回調(diào)函數(shù)的解決方案ajax請(qǐng)求可以寫成以下形式JavaScript$.ajax('target.html').done(function(){}).fail(function(){});非常簡(jiǎn)單明了但現(xiàn)在情況是返回?cái)?shù)據(jù)中有一字段規(guī)定請(qǐng)求失敗與否(不是通信問題的錯(cuò)誤)一般jquery的ajax的使用如下(當(dāng)然是我比較晚知道這個(gè)deferred這個(gè)對(duì)象,可能大家老早就不這樣寫了)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){//這里是出現(xiàn)請(qǐng)求失敗等問題的處理}});}因?yàn)榕c后臺(tái)約定好當(dāng)返回state字段值不為10000則算是錯(cuò)誤情況需要到error函數(shù)中執(zhí)行但是在success與error中要如何獲取deferred對(duì)象來進(jìn)行改寫使之可以像本題最上面的寫法使用如JavaScriptIO.ajaxGet('target.html',data).done(function(data){}).fail(function(data){});
如何使用$.ajax()返回的deferred對(duì)象
尚方寶劍之說
2019-04-16 20:27:56