formPanel提交方式
Ext.MessageBox.wait('正在提資料, 請稍侯 ...', '提示');xxxxFormPanel.getForm().submit({timeout : 60,success : function(form, action) { // 業務成功Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();},failure : function(form, action) { // 業務失敗Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();switch (action.failureType) {case Ext.form.Action.CLIENT_INVALID :Ext.Msg.alert('錯誤。', '存在未通過驗證的資料!');break;case Ext.form.Action.CONNECT_FAILURE :Ext.Msg.alert('錯誤。', '串連錯誤!');break;case Ext.form.Action.SERVER_INVALID :Ext.Msg.alert('錯誤!', action.result.msg);}}});
Ajax提交方式
Ext.Ajax.request({url : ...,params : {...},success : function(response, opts) {var o = Ext.util.JSON.decode(response.responseText);if( o.success){// 業務執行成功} else{// 業務執行失敗}},failure : function(response, opts) {// ? 此處怎麼做,大家可以說說 :oops: }});
二者都可以接收伺服器端返回的如下json串:
{success:true/false,msg:'xxxx'}
如果success為true,對於formPanel提交方式,程式會進入success回呼函數;對於Ajax提交方式,程式也會進入success回呼函數。
而區別在於如果success為false,對於formPanel提交方式,程式會進入failure回呼函數;而Ajax提交方式,程式依然會進入success回呼函數。
總結:
success的true和false可以用來表示業務的成功或者失敗。
1、在formPanel提交方式中,成功後的操作要在success回呼函數中進行,失敗後的操作在failure回呼函數中進行;
2、在Ajax提交方式中,業務的成功失敗都應該在success回呼函數中進行操作,而true或者false以o.success獲得(具體見代碼及注釋)。