ExtJs 中的Ext.Ajax.request总结

本文通过四种不同的后台返回值格式,展示了如何使用Ext.Ajax进行数据解析,并成功获取所需字段。证实了即使缺少某些标准字段(如success),仍然可以正确解析数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       费了九牛二虎之力测试了一下这个东东,有学习的供参考!多交流!嘿嘿。。。

第一种方式:

//后台返回值:
{"data":{"bookStatusId":20,"returnTime":"2011-03-05","bookSN":"123456-1","lendTime":"2011-03-02 11:20",
"borrower":"李四","bookId":61,"borrowerId":6,"lendOutId":34,"bookName":"1"},"success":true }

//前台解析:

Ext.Ajax.request({
                                url : _ctx.base + '/administration/bRet_loadBooksLendOutInfo.action',
                                params : { ID : comboBox.getValue()},
                                success : function(response, options){
                                    var resp = Ext.decode(response.responseText);
                                    alert("resp:"+resp+"/value:"+resp.data.borrower);
                                },

                                failure : function(response,options){
                                    Ext.Msg.alert("错误","数据加载失败!")
                                }
                            });

alert 输出的结果为:resp:[object Object]/value:李四

第二种方式:
//后台返回值:
{"data":{"bookStatusId":20,"returnTime":"2011-03-05","bookSN":"123456-1","lendTime":"2011-03-02 11:20",
"borrower":"李四","bookId":61,"borrowerId":6,"lendOutId":34,"bookName":"1"}}

据说没有success : true , 是不能解析的。经过本人测试,这是错误的说法!
当我只改了后台(去掉了success),其他不变的前提下,输入结果跟第一种方式结果一此。故然反驳。

第三种方式:
//后台返回值去掉了最外层大括号,如下:
{ "bookStatusId":20,"bookSN":"123456-1","returnTime":"2011-03-05","lendTime":"2011-03-02 11:20",
"borrower":"李四","bookId":61,"borrowerId":6,"lendOutId":34,"bookName":"1"}

//前台解析:
   success : function(response, options){
         var resp = Ext.decode(response.responseText);
         alert("resp:"+resp+"/value:"+resp .borrower);

   }

alert 输出的结果为:resp:[object Object]/value:李四 

第四种方式:
//后台返回值:

[{ "bookStatusId":20,"bookSN":"123456-1","returnTime":"2011-03-05","lendTime":"2011-03-02 11:20",
"borrower":"李四","bookId":61,"borrowerId":6,"lendOutId":34,"bookName":"1"}]

//前台解析:
success : function(response, options){
  var resp = Ext.decode(response.responseText);

//  var resp = Ext.util.JSON.decode(response.responseText); //这种方式也行
  var a = resp[0].lendTime;
  alert("borrower:"+a);

}
alert 输出的结果为:borrower:李四。

这里也推翻了多数所说的接收数据规则,如:{ msg:"",data:""}

本人认为只要符合JSON数据接收形式就行了,再看你怎样去获取返回到前台的值。

 

差不多就这些了,多多交流,给点意见!!!不吝赐教!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值