日期:2014-05-16  浏览次数:20337 次

表单提交成功了 但Ext总是调用 failure
不知道是哪里错了 前辈多指教 

  Ejb里的代码:
 
JScript code

        //表单提交..
        modifyRcsrForm.getForm().submit({
            waitMsg : '正在修改个人客户 - 日常收入信息,请稍后......',
            success : function(form, action) {//成功
                Ext.MessageBox.alert('提示','修改个人客户 - 日常收入信息成功!',function(){
                    modifyRcsrWindow.hide();
                    modifyRcsrForm.getForm().reset();
                    modifyRcsrForm.getForm().setValues({flag:'2'});
                    rcsrInfoStore.load({params : { start : 0, limit : 20 }});
                });
            },
            failure : function(form, action) {//失败
                Ext.MessageBox.alert('警告', '修改个人客户 - 日常收入信息失败! ' + action.info );
            }
        });
    


  后台java代码:
  返回的是 success:true 可是页面调用的还是 failure 
  action.info 这个好象也获得不到.. 
 
Java code

        if(currencyBuf == null){
            log.info("修改个人客户 - 日常收入信息失败,currencyBuf返回值为空!: " + flag );
            //失败返回的值
            out.print("{failure:true,info:'修改个人客户 - 日常收入信息失败:未知的错误信息!'}");
        } else {
            result = currencyBuf.getResult();
            if(result == PubData.Succ){
                log.info("修改个人客户 - 日常收入信息成功: " + flag );
                //成功返回的值 已经返回成功了 但是页面上总是转到 failure 
                out.print("{success:true,info:'修改个人客户 - 日常收入信息成功!'}");
            } else {
                if(currencyBuf.getAddword() == null){
                    log.error("修改个人客户 - 日常收入信息失败,currencyBuf.getAddword()值为空!: " + flag );
                    //失败返回的值
                    out.print("{failure:true,info:'修改个人客户 - 日常收入信息失败:未知的错误信息!'}");
                } else {
                    log.error("修改个人客户 - 日常收入信息失败!: " + flag + currencyBuf.getAddword());
                    //失败返回的值
                    out.print("{failure:true,info:'修改个人客户 - 日常收入信息失败!  " + currencyBuf.getAddword() + "'}");
                }
            }
        }

        return null;
    


------解决方案--------------------
失败时应该是用
JScript code
action.result.info

------解决方案--------------------
探讨

引用:
失败时应该是用

JScript code
action.result.info

还有失败时应该输入success:false吧?


我是说 后台成功了
out.print("{success:true,info:'修改个人客户 - 日常收入信息成功!'}");
调用了这句
但是在ExtJs中 还是调用了failu……

------解决方案--------------------
先吧输出的JSON字符串中的中文 换成 英文字母 在试验下
------解决方案--------------------
另外在预知状态下后台一般只返回执行状态的码 一般是一个数字

比如修改成功 就返回 {success:true}

前台拿到成功状态 输出什么提示信息 则让前台来考虑 后台就负责实际操作和返回状态码
------解决方案--------------------
你在js上输出传过来的字符串,发上来看看
还有把你引用的一些代码发上来
js的报错没有规律,可能是别的地方有错误关联的,你也可以安装httpwatchpro,自己调试一下
------解决方案--------------------
JScript code

out.print("[{success:true,info:'修改个人客户 - 日常收入信息成功!'}]");