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
          主站蜘蛛池模板: 合肥市| 南宁市| 临沂市| 水富县| 炎陵县| 漯河市| 梁河县| 盐城市| 栖霞市| 宕昌县| 清河县| 武汉市| 珠海市| 曲麻莱县| 中牟县| 眉山市| 开江县| 新乡县| 上高县| 峡江县| 清徐县| 和林格尔县| 怀安县| 柏乡县| 尖扎县| 大渡口区| 靖安县| 西乡县| 岳阳市| 临猗县| 东兴市| 通州区| 中山市| 尼勒克县| 青川县| 买车| 襄垣县| 吉林省| 盐边县| 凯里市| 马龙县|