Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          前置:
          后臺成功返回字符串:{success:true,msg:'操作成功!'}
          后臺失敗返回字符串:{success:false,errors:'操作失敗!'}
          當submi提交時,action不存在后臺返回下圖字符串:
           
          下面所有的action不存在,是指url路徑不存在
           
          FormPanel 提交代碼如下:
          var G = new Ext.form.FormPanel({})
           
          G.getForm().submit({//客戶端的數據提交給服務器
                              url:wayfoon.MMS.DataPage +'/ext2Upload.action',   
                              //waitMsg:"正在提交表單數據,請稍候。。。。。。",    
                              failure:function(form, action){
                                  Ext.MessageBox.alert('警告', action.result.errors);       
                              },     
                              success: function(form, action){
                                  Ext.MessageBox.alert('信息', action.result.msg);
                               }    
                          });
          根據后臺json 字符串 success的值(ture/false)自動選擇failure或者success,也可以捕捉前臺錯誤(走failure流程),比如數據非法而被強制提交時,
          后臺字符串需要通過action.result 轉成json 字符串,供我們按習慣的方法使用,
           
          對于后臺異常處理,比如 action不存在,則無能為力,會出JavaScript錯誤,
          錯誤處,ext-all.js的代碼
          this.decode = function(json) {
                  //alert(json);
            return eval("(" + json + ")")
           }
          原因是無法將上圖(如圖)的字符串轉成json字符串,導致無法判斷走哪個流程,而正常情況下,返回的是 {success:true,msg:'操作成功!'}或其他。
          試了將上面代碼使用try{}catch (){} 還是不能解決JavaScript錯誤,我們一般可以避免這種后臺錯誤,如果非得解決的話,不知道有沒有好的解決方法。
           
           
          Ext.Ajax.request提交代碼如下:
          Ext.Ajax.request({
              url:wayfoon.MMS.DataPage+'/cpSMS.action?action=submitSMS',
              method:'POST',
              params:'id='+id,
              success:function(form,action){
                  var obj = Ext.util.JSON.decode(form.responseText);
                  if(obj.success==true)
                  {
                      Ext.Msg.alert('提示',obj.msg);
                      ds.reload();
                  }
                  else
                  {
                      //Ext.Msg.alert('提示',obj.errors);
                      Ext.Msg.alert('提示',obj.msg);
                  } 
              },
              failure:function(form,action){
                  Ext.Msg.alert('警告','系統錯誤');
              }
          });
          后臺字符串通過Ext.util.JSON.decode 轉成json字符串
          不能自動根據json字符串success的值來選擇流程 ,需要根據obj.success的值來判斷走哪個流程
           
          該failure:可以捕捉系統異常,比如,數據未曾提交到后臺或action 不存在,此時走failure 流程

          posted on 2009-12-06 20:17 seal 閱讀(1100) 評論(0)  編輯  收藏 所屬分類: EXTJS
          主站蜘蛛池模板: 湖南省| 四平市| 和平区| 正蓝旗| 绥芬河市| 社会| 响水县| 剑川县| 哈密市| 二连浩特市| 洪洞县| 广丰县| 德兴市| 庆云县| 东阳市| 南京市| 金平| 太保市| 棋牌| 襄樊市| 大庆市| 叶城县| 利川市| 乌兰察布市| 滦平县| 海南省| 苏尼特右旗| 长顺县| 铜鼓县| 基隆市| 武夷山市| 襄垣县| 安吉县| 仁布县| 大厂| 四子王旗| 蒙城县| 邵阳县| 芒康县| 琼结县| 泾川县|