0

我有一个需要使用 POST 而不是 GET 调用的服务。我以为我在某处读到我可以简单地在代理上添加方法:'POST'选项,但它似乎没有效果。

    Ext.define('Sencha.store.Teams', {
        扩展:'Ext.data.Store',

        配置:{
            模型:'Sencha.model.Team',
            自动加载:真,
            代理: {
                类型:'ajax',
                // 方法:'GET',

                方法:'POST',
                网址:'teams.json'
            }
        }
    });

4

1 回答 1

5

您必须覆盖 actionMethod 属性

Ext.define('Sencha.store.Teams', {
    extend: 'Ext.data.Store',

    config: {
        model: 'Sencha.model.Team',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            actionMethods: {
                create : 'POST',
                read   : 'POST', // by default GET
                update : 'POST',
                destroy: 'POST'
            },
            url: 'teams.json'
        }
    }
});

或定义自己的代理类

Ext.define('Sencha.data.PostAjax', {
    extend: 'Ext.data.proxy.Ajax',
    alias: 'proxy.postproxy', // must to get string reference
    config: {
       actionMethods: {
            create : 'POST',
            read   : 'POST', // by default GET
            update : 'POST',
            destroy: 'POST'
        },
    }
}


Ext.define('Sencha.store.Teams', {
    extend: 'Ext.data.Store',

    config: {
        model: 'Sencha.model.Team',
        autoLoad: true,
        proxy: {
            type: 'ajaxpost'
            url: 'teams.json'
        }
    }
});

免责声明:代码是从头开始编写的,没有经过真正的测试。如果它不起作用,请不要投反对票,然后不要重播您的评论。谢谢。

于 2012-07-12T23:07:52.363 回答