ExtJS:Ext.data.DataReader:#使用无效的远程数据调用了realize

ExtJS:Ext.data.DataReader:#使用无效的远程数据调用了realize,extjs,Extjs,当我通过POST请求创建新记录时,收到“Ext.data.DataReader:#realize was called with invalid remote data”错误。虽然与讨论类似,但我的情况略有不同: 我的服务器返回新记录的主键以及与网格中的新记录关联的附加信息。我的服务器返回以下内容: {'success':true,'message':'Created Quote','data': [{'id':'610'}, {'quoteNumber':'1'}]} 其中id是mysql数

当我通过POST请求创建新记录时,收到“Ext.data.DataReader:#realize was called with invalid remote data”错误。虽然与讨论类似,但我的情况略有不同:

我的服务器返回新记录的主键以及与网格中的新记录关联的附加信息。我的服务器返回以下内容:

{'success':true,'message':'Created Quote','data': [{'id':'610'}, {'quoteNumber':'1'}]}
其中id是mysql数据库中记录的主键。quoteNumber是一个db生成的值,需要添加到创建的记录中

其他相关位:

var quoteRecord = Ext.data.Record.create([{name:'id', type:'int'},{name:'quoteNumber', type:'int'},{name:'slideID'}, {name:'speaker'},{name:'quote'}, {name:'metadataID'}, {name:'priorityID'}]);

var quoteWriter = new Ext.data.JsonWriter({ writeAllFields:false, encode:true });

var quoteReader = new Ext.data.JsonReader({id:'id', root:'data',totalProperty: 'totalitems', successProperty: 'success',messageProperty: 'message',idProperty:'id'}, quoteRecord);
我被难住了。有人吗

谢谢


tom

发现来自服务器的响应应该如下所示:

{'success':true,'message':'Created Quote','data': [{'id':'610','quoteNumber':'1'}]}

一个细微的差别,我不确定我是否理解。

结果表明,来自服务器的响应应该如下所示:

{'success':true,'message':'Created Quote','data': [{'id':'610','quoteNumber':'1'}]}
一个细微的差别,我不确定我是否理解。

[回答代码格式而不是注释…]

一些缩进格式将使差异变得清晰。此(正确)表单返回具有两个属性的单个对象:

{
    'success':true,
    'message':'Created Quote',
    'data': [{
        'id':'610',
        'quoteNumber':'1'
    }]
}
原始格式返回两个单独的对象,它们的属性不匹配,无法解析为列:

{
    'success':true,
    'message':'Created Quote',
    'data': [{
        'id':'610'
    },{
        'quoteNumber':'1'
    }]
}
[以答案而不是代码格式的注释进行响应…]

一些缩进格式将使差异变得清晰。此(正确)表单返回具有两个属性的单个对象:

{
    'success':true,
    'message':'Created Quote',
    'data': [{
        'id':'610',
        'quoteNumber':'1'
    }]
}
原始格式返回两个单独的对象,它们的属性不匹配,无法解析为列:

{
    'success':true,
    'message':'Created Quote',
    'data': [{
        'id':'610'
    },{
        'quoteNumber':'1'
    }]
}