Arrays 如何通过sencha的store发布数组

Arrays 如何通过sencha的store发布数组,arrays,extjs,load,store,Arrays,Extjs,Load,Store,我创建了一个存储,并用一个数组中的一些参数初始化它。当我执行load函数时,数组参数变成字符串“[object]” 守则如下: t1:[object Object] t1:[object Object] t2:ddd 商店: Ext.define('test.store.info',{ extend: 'Ext.data.Store', config:{ model:'test.model.info', proxy:{ t

我创建了一个存储,并用一个数组中的一些参数初始化它。当我执行load函数时,数组参数变成字符串“[object]”

守则如下:

t1:[object Object]
t1:[object Object]
t2:ddd
商店:

Ext.define('test.store.info',{
    extend: 'Ext.data.Store',
    config:{
        model:'test.model.info',
        proxy:{
            type:'ajax',
            url:'http://domain/path',
            actionMethods:'POST'
        }
    }
});
型号:

Ext.define('test.model.info',{
    extend:'Ext.data.Model',
    config:{
        fields:[
            'code',
            'data'
        ]
    }
})
在控制器中使用:

var store = Ext.getStore('info');
params = {
    t1:[{
        f1:'aa'
    },{
        f2:'bb'
    }],
    t2:'ddd'
}
console.log(params)
store.load({
    params:params
});
或者我只是使用Ajax函数代替load函数,结果是一样的

  Ext.Ajax.request({
        url:'http://domain/path',
        method:'post',
        params:params,
    });
我在浏览器的网络中检查xhr,它是一个字符串,如下所示:

t1:[object Object]
t1:[object Object]
t2:ddd
当我检查服务器日志时,它显示:

t1:'[object Object]'
t1:'[object Object]'
t2:'ddd'

我找到了解决办法,谢谢

1,在Ajax期间只需使用jsonData而不是参数,如下所示: 2,或者在发送前对数据进行编码
如果您将参数命名为“foo[]”,那么它将编码为POST数组,以便在服务器端使用。请注意末尾的
[]

var companies = [1,2,3];
Ext.Ajax.request({
            url: '...',
            method: "post",
            params: {
                'companies[]': companies,
            },
            success: function (response) {
                console.log("done");
            }
        });
var companies = [1,2,3];
Ext.Ajax.request({
            url: '...',
            method: "post",
            params: {
                'companies[]': companies,
            },
            success: function (response) {
                console.log("done");
            }
        });