Extjs/Ajaxのsuccessとfailureはいつ呼び出されますか?


1. Ext.form.Action.Submitの構成オプションsuccess、failure
戻りjsonのsuccess属性から判断し、successがtrueの場合success、falseの場合failure、jsonの場合success属性、failureがないため、操作が成功したかどうかを示すにはsuccess属性を返さなければならない.
[javascript] view plaincopy
  • form.getForm().submit({  
  • //ログイン中に表示されるテキスト
  •                         loadMask: myMask.show(),  
  • //submit時に指すアドレス
  •                         url: "userAction!login",  
  •                         success: function(form, action) {  
  •                             window.location.href = "home.jsp";  
  •                         },  
  •                         failure: function(form, action) {  
  •                             myMask.hide();  
  •                             Ext.Msg.alert(「エラー」,action.result.info);  
  •                         }  
  • });  
  • 2. Ext.Ajax.request success、failure response status , ,200 success,404 500 failure。 success 200, 。クライアントに応答したコンテンツが何であるかにかかわらず、応答が成功すればこのsuccessが実行され、返されたコンテンツとは関係ありません.あなたが返したパラメータsuccess値に基づいて判断して別々に処理したい場合は、上のsuccessで判断処理を行わなければなりません.たとえば、次のようになります.
    [javascript] view plaincopy
  • Ext.Ajax.request({    
  •             url:'admin!select',    
  •             method:'post',    
  • waitMsg:'データロード中、後で....',    
  •             success:function(response,opts){    
  •                 var obj=Ext.decode(response.responseText);    
  • if(obj.success="true"){//JSON列でtrueが文字列でない場合obj.success==true
  • //バックグラウンドからsuccessがfalseの場合に実行されるコード
  • を返します.
  •                 } else {  
  • //バックグラウンドからsuccessがfalseの場合に実行されるコード
  • を返します.
  •                 }  
  •             },    
  •             failure:function(response,opts){    
  •                 var obj=Ext.decode(response.responseText);    
  •                 alert(obj.result);    
  •                     
  •             }  
  • });