Sealyu

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評(píng)論 :: 0 Trackbacks
          前置:
          后臺(tái)成功返回字符串:{success:true,msg:'操作成功!'}
          后臺(tái)失敗返回字符串:{success:false,errors:'操作失敗!'}
          當(dāng)submi提交時(shí),action不存在后臺(tái)返回下圖字符串:
           
          下面所有的action不存在,是指url路徑不存在
           
          FormPanel 提交代碼如下:
          var G = new Ext.form.FormPanel({})
           
          G.getForm().submit({//客戶(hù)端的數(shù)據(jù)提交給服務(wù)器
                              url:wayfoon.MMS.DataPage +'/ext2Upload.action',   
                              //waitMsg:"正在提交表單數(shù)據(jù),請(qǐng)稍候。。。。。。",    
                              failure:function(form, action){
                                  Ext.MessageBox.alert('警告', action.result.errors);       
                              },     
                              success: function(form, action){
                                  Ext.MessageBox.alert('信息', action.result.msg);
                               }    
                          });
          根據(jù)后臺(tái)json 字符串 success的值(ture/false)自動(dòng)選擇failure或者success,也可以捕捉前臺(tái)錯(cuò)誤(走failure流程),比如數(shù)據(jù)非法而被強(qiáng)制提交時(shí),
          后臺(tái)字符串需要通過(guò)action.result 轉(zhuǎn)成json 字符串,供我們按習(xí)慣的方法使用,
           
          對(duì)于后臺(tái)異常處理,比如 action不存在,則無(wú)能為力,會(huì)出JavaScript錯(cuò)誤,
          錯(cuò)誤處,ext-all.js的代碼
          this.decode = function(json) {
                  //alert(json);
            return eval("(" + json + ")")
           }
          原因是無(wú)法將上圖(如圖)的字符串轉(zhuǎn)成json字符串,導(dǎo)致無(wú)法判斷走哪個(gè)流程,而正常情況下,返回的是 {success:true,msg:'操作成功!'}或其他。
          試了將上面代碼使用try{}catch (){} 還是不能解決JavaScript錯(cuò)誤,我們一般可以避免這種后臺(tái)錯(cuò)誤,如果非得解決的話(huà),不知道有沒(méi)有好的解決方法。
           
           
          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('警告','系統(tǒng)錯(cuò)誤');
              }
          });
          后臺(tái)字符串通過(guò)Ext.util.JSON.decode 轉(zhuǎn)成json字符串
          不能自動(dòng)根據(jù)json字符串success的值來(lái)選擇流程 ,需要根據(jù)obj.success的值來(lái)判斷走哪個(gè)流程
           
          該failure:可以捕捉系統(tǒng)異常,比如,數(shù)據(jù)未曾提交到后臺(tái)或action 不存在,此時(shí)走failure 流程

          posted on 2009-12-06 20:17 seal 閱讀(1105) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): EXTJS
          主站蜘蛛池模板: 岐山县| 基隆市| 新龙县| 修水县| 唐山市| 金华市| 辽宁省| 唐河县| 锦州市| 南宁市| 龙江县| 台南市| 农安县| 怀宁县| 韩城市| 遵化市| 正镶白旗| 璧山县| 大名县| 社会| 南皮县| 德清县| 平顶山市| 墨玉县| 聂荣县| 广汉市| 安西县| 攀枝花市| 霍城县| 苍溪县| 临湘市| 射阳县| 宜兰市| 望谟县| 乐至县| 土默特左旗| 龙井市| 永宁县| 上饶县| 张家口市| 达日县|