ExtJS 4 - JsonStore + Post Request的问题

时间:2011-09-06 08:28:28

标签: javascript ajax json extjs extjs4

我正在尝试使用POST请求调用API。但我的Chrome Inspector会在网络标签中显示method='GET' ...

这是我的代码:

Ext.define('TestItem', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'id', type: 'int'},
            {name: 'name', type: 'string'}
    ]
    });

    var testStore = Ext.create('Ext.data.JsonStore', {
        model: 'TestItem',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url : '../path_to/api/',
            method : 'POST',
            reader: {
                type: 'json',
                root: 'data',
                totalProperty: 'total'
            }
        },
        baseParams: { 
            operation:'showall' 
        }
    });

所以我想用method='POST'和参数operation = showall

来调用API

Google Inspector会在网络标签中向我显示以下信息:

GET ../path_to/api/?_dc=1315297478131&page=1&start=0&limit=25 HTTP/1.1

为什么是GET请求?

为什么有一些参数如limit,start和dc?

我已经尝试了1000个教程,并且整晚都用Google搜索。

1 个答案:

答案 0 :(得分:17)

在extjs4方法中:POST不起作用。在extjs4中,任何读取都由GET发送,任何写入(POST,PUT,DELETE)都由POST发送。要覆盖它,请参阅actionMethods。

type: 'ajax',
actionMethods: {
    create : 'POST',
    read   : 'POST',
    update : 'POST',
    destroy: 'POST'
}