在ajax请求之后的ExtJS 3.4回调函数

时间:2015-04-06 07:42:01

标签: ajax extjs store

我有一家商店:

var store = new Ext.data.JsonStore({
        root: 'list',
        url: '../myProject/getData.ajax',
        baseParams:{
            date:'',
        },
        fields: rec,
        totalProperty:'totalCount',
        pruneModifiedRecords:true,
        autoLoad : false,   
        listeners:{
            load:function(){
                globalMask.hide();
            }
        } 
    });

按下按钮后,i加载存储功能:

function storeLoad(){
    store.baseParams =  {
            date:date.getRawValue(),
        },
    store.load({
        params  :{start:0, limit:100},
        callback: function (response,options,success) {
                    if (success){
                        var res =  Ext.util.JSON.decode(response.responseText); 
                        if(res.msj != null){
                        Ext.MessageBox.alert("Sonuç",res.msj);

                        }
                    } else{
                        Ext.MessageBox.alert("Error","Error message : "+response.statusText+". Try again later!!! ");
                    }
                    console.log("response:"+response);
                    console.log("op:"+options);
                    console.log("success:"+success);
                    console.log("res:"+res);
                    console.log("res.mesaj:"+res.msj);
            }

    });
}

然后在控制台中返回如下:

  

响应:[object Object],[object Object],[object Object],[object   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象],[对象对象],[对象对象],[对象对象],[对象   对象

     

op:[object Object]

     

成功:真

     

RES:

     

res.msj:未定义

我该怎么处理?为什么无法解码响应?我想在成功后加载存储但存储加载自己。如何使用Callback成功和失败? 存储根是真的,它加载但是我无法在成功或失败后加载它?

3 个答案:

答案 0 :(得分:0)

回调函数中的

响应参数不是来自服务器的json响应。这是一个已加载记录的数组,查看documentation

答案 1 :(得分:0)

在商店的读者中添加Ext.data.DataReader.messageProperty =“msj”,查看documentation的第一个示例,并在商店的监听器“load”中添加警报。

答案 2 :(得分:0)

不要将console.log与字符串和对象一起使用。尝试使用console.log(响应)而不是console.log("响应:" +响应);

在控制台日志中尝试此操作,您将理解:

执行:


    var test = {a:1, b:2, c:3};

执行:

   

     console.log(test);

输出:


     Object {a: 1, b: 2, c: 3}

执行:


console.log("response" + test);

输出:


 response[object Object]

如果您这样做,您将能够导航对象。也许你的代码已经是正确的了。